Subversion Tip of the Week

Relocating a Working Copy

At some point during the Apache Subversion development lifecycle, your repository may change location – and therefore get a new URL. This may be because the IP address of the server has changed, or the repository root path in the server setup could have changed.

This can be particularly problematic if you’ve put some serious effort into modifying your working copy, as it effectively prevents you from performing an ‘SVN Commit…’ In this instance, checking out a fresh working copy from the new location and porting your changes across, could be a daunting task! This is where the ‘Relocate’ command comes into play. This command rewrites all the URLs associated with the files and folders in your working copy, with the new URL.

1) Start by selecting the ‘Relocate’ command from the TortoiseSVN menu.

2) Specify the URL you want to switch to and click ‘Ok.’

3) TortoiseSVN will then relocate to the new URL.

Warning! This operation should be used with caution, as if used incorrectly it can corrupt your working copy. In this happens, the only solution is to perform a fresh checkout.

The ‘Relocate’ command should not be used to:

    • move to a different Subversion repository.
    • switch to a different branch or directory within the same repository.

Need more Subversion know-how? After getting a great response from the Apache Subversion community in 2011, Subversion Live is back for 2012, bringing the Subversion community sessions covering everything from Subversion’s future, to expert-led best practices workshops, as well as the unique opportunity to meet the core Subversion committers.

2 Responses to “Subversion Tip of the Week”

  • Could you please explain why do you think it could corrupt the working copy? Thanks in advance.

  • Thanks for your comment! You’ll still be able to access and work on the files in your working copy, but improper use of relocate can cause error messages when you try to run an update or commit your changes back to the repository – meaning that you’ll have to perform a fresh checkout to start
    communicating with the repository again.

Leave a Reply