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 go to RabbitVCS SVN->Export...

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.

Fill out Destination with the path to where the files should be stored.

Finally, the dropdown and text field labeled Revision denotes which revision to export. Working Copy (the default for local folders) exports the revision you are currently working on - typically the latest revision. For this reason the setting cannot be used on remote repositories, since there are no "work in progress" revisions on it. HEAD uses the latest revision. Finally, Numberlets you pick a specific revision to export.

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.