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.

Exporting a single revision

To export from a repository, right-click where you would like the exported files to be put, and click on Export from a subversion repository...

In the window that pops up, you can configure what should be exported, and to where.

Fill out the field labeled URL either with the path to your local working copy or the repository on the SVN server. Recall that the format of the SVN URL ishttps://svn01.ist.aau.dk/svn/DEPARTMENT/TYPE/NAME as mentioned in the checkout guide.

 

Although the target directory should be the location you right-clicked, you can modify it to fit your needs. Instead of specifying a new sub folder for the export you can click on Append source url name to subfolder to create it based on the last segment of the url (the name of the repository).

 

Finally, the Select revision area can be customised to export a specific revision as follows:

Number - a specifically numbered revision.
Date - from a particular date.
START - the first revision in the repository.
HEAD - the latest revision in the repository.
WORKING - matching your current revision in the working copy.

 

Click OK when you are satisfied with the settings.

Migrate while retaining revisions

It is possible from the command line version of Subversion to use the svnsync command to copy a set of revisions between repositories. Unfortunately this command is not directly available in RabbitVCS.

 

Open a command line and use the command

 

svnsync init DEST_URL SOURCE_URL

 

where DEST_URL is the full address of the new repository and SOURCE_URL is the address of the old repository.

 

You will 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 init command has finished, execute the following to perform the actual synchronisation:

 

svnsync sync DEST_URL

 

Again, replace DEST_URL with the full address of the new repository.

 

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