Repository Upgrade: Difference between revisions

From SubversionWiki
Jump to navigation Jump to search
NJBrad (talk | contribs)
No edit summary
m Reverted edits by DarliErc4t (Talk); changed back to last version by Leo
 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
I have used the following batch files to upgrade over 800 repositories this morning.<br>
I have used the following batch files to upgrade over 800 repositories this morning.<br>
And then someone gave me another challenge.  Spaces....<br>
Here's the updated script.  Note it uses commands added in WindowsXP PushD and PopD as well as some of the formatting options used to navigate repositories
<br>
<br>
-- Upgrade.bat -----------------------------------------<br>
-- Upgrade.bat -----------------------------------------<br>
  @echo off
  @echo off
  IF [NOT] %3=="" goto DoIt
  IF NOT %3=="" goto DoIt
   
   
  cls
  cls
Line 9: Line 12:
  echo .
  echo .
  echo Command line syntax:
  echo Command line syntax:
  echo Upgrade2 Source_Directory Working_Directory Target_Directory
  echo Upgrade Source_Directory Working_Directory Target_Directory
  echo .
  echo .
  echo Source Directory - Where the repositories exist now
  echo Source Directory - Where the repositories exist now
Line 15: Line 18:
  echo Target Directory - Where the newly formatted files will be placed
  echo Target Directory - Where the newly formatted files will be placed
  echo .
  echo .
  echo NOTE: The upgrade_repos.bat file is, by default, using the default arguments for svnadmin create
  echo NOTE: The upgrade_repos.bat file is, by default, using the default  
echo      arguments for svnadmin create.
  echo      If you want to use anything else, change the file before running.
  echo      If you want to use anything else, change the file before running.
  goto exit
  goto exit
   
   
  :DoIt
  :DoIt
pushd "%1"
  ::call the actual upgrade batch file
  ::call the actual upgrade batch file
  for /D %%I in (*.) do call upgrade_repos.bat %%~nI %1 %2 %3
  for /D %%I in (*.) do call D:\Scripts\upgrade_repos.bat "%%~nI" %1 %2 %3
   
   
  ::copy the master files - Files in the SVNParent
  ::copy the master files - Files in the SVNParent
  xcopy %1\*.* %3\ /y
  xcopy "%1\*.*" "%3\" /y
popd
   
   
  :Exit
  :Exit
Line 34: Line 42:
  echo Migrating %1
  echo Migrating %1
  echo ...Creating Repository
  echo ...Creating Repository
  svnadmin create %4\%1
echo %~4\%~1
  svnadmin create "%~4\%~1"
  echo ...Dumping
  echo ...Dumping
  svnadmin dump -q %2\%1 > %3\%1.dmp
  svnadmin dump -q "%~2\%~1" > "%~3\%~1.dmp"
  echo ...Loading
  echo ...Loading
  svnadmin load -q %4\%1 < %3\%1.dmp
  svnadmin load -q "%~4\%~1" < "%~3\%1.dmp"
  echo ...Copying hooks
  echo ...Copying hooks
  xcopy %2\%1\hooks\*.* %4\%1\hooks /y
  xcopy "%~2\%~1\hooks\*.*" "%~4\%~1\hooks" /y /d
  echo *******************************************************************
  echo *******************************************************************
<br>
<br>

Latest revision as of 22:26, 19 February 2008

I have used the following batch files to upgrade over 800 repositories this morning.
And then someone gave me another challenge. Spaces....
Here's the updated script. Note it uses commands added in WindowsXP PushD and PopD as well as some of the formatting options used to navigate repositories


-- Upgrade.bat -----------------------------------------

@echo off
IF NOT %3=="" goto DoIt

cls
echo Upgrade existing Subversion repositories
echo .
echo Command line syntax:
echo Upgrade Source_Directory Working_Directory Target_Directory
echo .
echo Source Directory - Where the repositories exist now
echo Working Directory - Where the dump files should be placed
echo Target Directory - Where the newly formatted files will be placed
echo .
echo NOTE: The upgrade_repos.bat file is, by default, using the default 
echo       arguments for svnadmin create.
echo       If you want to use anything else, change the file before running.
goto exit

:DoIt
pushd "%1"

::call the actual upgrade batch file
for /D %%I in (*.) do call D:\Scripts\upgrade_repos.bat "%%~nI" %1 %2 %3

::copy the master files - Files in the SVNParent
xcopy "%1\*.*" "%3\" /y

popd

:Exit





-- Upgrade_Repos.bat -----------------------------------

echo Migrating %1
echo ...Creating Repository
echo %~4\%~1
svnadmin create "%~4\%~1"
echo ...Dumping
svnadmin dump -q "%~2\%~1" > "%~3\%~1.dmp"
echo ...Loading
svnadmin load -q "%~4\%~1" < "%~3\%1.dmp"
echo ...Copying hooks
xcopy "%~2\%~1\hooks\*.*" "%~4\%~1\hooks" /y /d
echo *******************************************************************