svn switch — Update working copy to a different URL.
This subcommand updates your working copy to mirror a new URL—usually a URL which shares a common ancestor with your working copy, although not necessarily. This is the Subversion way to move a working copy to a new branch. See the section called “Switching a Working Copy” for an in-depth look at switching.
--revision (-r) REV --non-recursive (-N) --quiet (-q) --diff3-cmd CMD --relocate --username USER --password PASS --no-auth-cache --non-interactive --config-dir DIR
If you're currently inside the directory
vendors
which was branched to
vendors-with-fix
and you'd like to
switch your working copy to that branch:
$ svn switch http://svn.red-bean.com/repos/branches/vendors-with-fix . U myproj/foo.txt U myproj/bar.txt U myproj/baz.c U myproj/qux.c Updated to revision 31.
And to switch back, just provide the URL to the location in the repository from which you originally checked out your working copy:
$ svn switch http://svn.red-bean.com/repos/trunk/vendors . U myproj/foo.txt U myproj/bar.txt U myproj/baz.c U myproj/qux.c Updated to revision 31.
You can just switch part of your working copy to a branch if you don't want to switch your entire working copy.
Sometimes an administrator might change the "base
location" of your repository — in other words,
the contents of the repository doesn't change, but the
main URL used to reach the root of the repository does.
For example, the hostname may change, or the URL schema,
or perhaps just the path which leads to the repository.
Rather than checkout a new working copy, you can have the
svn switch command "rewrite" the the
beginnings of all the URLs in your working copy. Use the
--relocate
command to do the
substitution. No file contents are changed, nor is the
repository contacted. It's similar to running a perl
script over your working copy .svn/
directories which runs
s/OldRoot/NewRoot/.
$ svn checkout file:///tmp/repos test A test/a A test/b … $ mv repos newlocation $ cd test/ $ svn update svn: Unable to open an ra_local session to URL svn: Unable to open repository 'file:///tmp/repos' $ svn switch --relocate file:///tmp/repos file:///tmp/newlocation . $ svn update At revision 3.