@echo off rem ############################################################################## rem ## ## rem ## This is a template for writing Subversion bug reproduction scripts. ## rem ## ## rem ## It creates a repository containing the standard Greek Tree (see ## rem ## http://svn.apache.org/repos/asf/subversion/trunk/subversion/tests/greek-tree.txt) ## rem ## and checks out a working copy containing that tree. Please adjust ## rem ## this script however you need to to demonstrate your bug. When it's ## rem ## ready, post the bug report to dev@subversion.apache.org -- after ## rem ## http://subversion.apache.org/docs/community-guide/issues.html#reporting-bugs, ## rem ## of course. ## rem ## ## rem ############################################################################## :defineCommands rem You might need to adjust these lines to point to your rem compiled-from-source Subversion binaries, if using those: for %%i in (svn.exe) do set SVN="%%~$PATH:i" for %%i in (svnadmin.exe) do set SVNADMIN="%%~$PATH:i" :defineUrls rem Only supported access method: file://. If http:// or svn://, then rem you'll have to configure it yourself first. set URL=file:///%CD%/repos set URL=%URL:\=/% echo Base url for repo: %URL% :cleanAllDirsAndCreateRepo if exist repos rmdir /s /q repos if exist import-me rmdir /s /q import-me if exist trunk_wc rmdir /s /q trunk_wc if exist branch_wc rmdir /s /q branch_wc if exist trunk_b_wc rmdir /s /q trunk_b_wc %SVNADMIN% create repos :prepareGreekTree echo Making a Greek Tree for import... mkdir import-me mkdir import-me\trunk mkdir import-me\tags mkdir import-me\branches mkdir import-me\trunk\A mkdir import-me\trunk\A\B\ mkdir import-me\trunk\A\C\ mkdir import-me\trunk\A\D\ mkdir import-me\trunk\A\B\E\ mkdir import-me\trunk\A\B\F\ mkdir import-me\trunk\A\D\G\ mkdir import-me\trunk\A\D\H\ echo This is the file 'iota'. > import-me\trunk\iota echo This is the file 'A\mu'. > import-me\trunk\A\mu echo This is the file 'A\B\lambda'. > import-me\trunk\A\B\lambda echo This is the file 'A\B\E\alpha'. > import-me\trunk\A\B\E\alpha echo This is the file 'A\B\E\beta'. > import-me\trunk\A\B\E\beta echo This is the file 'A\D\gamma'. > import-me\trunk\A\D\gamma echo This is the file 'A\D\G\pi'. > import-me\trunk\A\D\G\pi echo This is the file 'A\D\G\rho'. > import-me\trunk\A\D\G\rho echo This is the file 'A\D\G\tau'. > import-me\trunk\A\D\G\tau echo This is the file 'A\D\H\chi'. > import-me\trunk\A\D\H\chi echo This is the file 'A\D\H\omega'. > import-me\trunk\A\D\H\omega echo This is the file 'A\D\H\psi'. > import-me\trunk\A\D\H\psi echo Importing it... cd import-me %SVN% import -q -m "Initial import." %URL% cd .. :checkoutTrunk echo Checking out a sparse working copy (omitting the A\B directory).. %SVN% co --depth immediates %URL%/trunk trunk_wc %SVN% update --set-depth infinity trunk_wc/A/C %SVN% update --set-depth infinity trunk_wc/A/D echo Making a branch of trunk called 'feature'... %SVN% copy %URL%/trunk %URL%/branches/feature -m "Making feature branch" echo Making a working copy of the feature branch... %SVN% co --depth immediates %URL%/branches/feature branch_wc %SVN% update --set-depth infinity branch_wc/A/C %SVN% update --set-depth infinity branch_wc/A/D echo Make a full working copy of trunk for fiddling with B... %SVN% co %URL%/trunk trunk_b_wc echo Change some files on both trunk and branch and commit... echo New content for iota. > trunk_wc\iota echo New content for psi. > branch_wc\A\D\H\psi echo New content for lambda. > trunk_b_wc\A\B\lambda %SVN% ci trunk_wc -m "Some trunk changes" %SVN% ci trunk_b_wc -m "Some trunk changes (B)" %SVN% ci branch_wc -m "Some branch changes" echo Now merging the trunk to the feature branch... %SVN% update branch_wc %SVN% merge %URL%/trunk branch_wc %SVN% ci branch_wc -m "Merging with trunk" echo Now doing the reintegrate merge to trunk wc... %SVN% update trunk_wc %SVN% merge --reintegrate %URL%/branches/feature trunk_wc