AAU It Services

Migrate

Repository migration

It is impossible to perform a true migration between two SVN repositories as users are not allowed full access to the IST Subversion server. It is, however, possible to perform shallow migrations with the export command. This only copies a single revision in the repository. It is also possible to synchronise between two SVN repositories using the independent svnsync command. Both approaches are described in this guide.

Migrate

 First you need to export the old repository into a temporary folder. To export your repository invoke the command

 

svn export REPOSITORY TEMP

 

REPOSITORY is your repository folder, e.g., ~/Documents/d445b.

TEMP is the path of your temporary folder, e.g., ~/Documents/temp.

 

The temporary folder will now contain a clean version of our latest revision without any SVN-specific data. We can now import these files into a new repository by executing the following command:

 

svn import TEMP SVN_URL

 

TEMP is the path of your temporary folder, e.g., ~/Documents/temp.

SVN_URL is the URL of your new repository, for example https://svn01.ist.aau.dk/svn/ProjectGroups/f11d873a.

 

All of your files of the exported revision will now be committed to the new repository starting at revision #1.

Migrate while retaining revisions

It is possible from the original version of Subversion to use the svnsync command to copy a repository to a new repository on a different server while still retaining all revisions. Open a command line terminal before continuing.

Invoke the command

 

svnsync init DEST_URL SRC_URL

 

Where DEST_URL is the URL of the new repository and SRC_URL is the source repository URL.

You will be prompted for password first. Press enter here as the username was selected as your local computer username. You will then be prompted for username and you should enter the full username for the destination repository. If it is an IST repository the username is your full email. Password is the associated password for the account.

 

You will then be prompted in the same way for credentials for the source repository. Do the same here.

 

Once the command has finished, invoke the following command to initiate the synchronisation:

 

svnsync sync DEST_URL

 

Where DEST_URL is the url of the destination repository again. You may be prompted for username and password again as with the above command. Type those  in. The transfer will begin.

 

If the transfer halts for some reason (no network connection etc.) you execute the sync command again and it will proceed.