This text is a work in progress—highly subject to
change—and may not accurately describe any released
version of the Apache™ Subversion® software.
Bookmarking or otherwise referring others to this page is
probably not such a smart idea. Please visit
http://www.svnbook.com/
for stable versions of this book.

Name

svn switch (sw) — Update working copy to a different URL.

Synopsis

svn switch URL[@PEGREV] [PATH]

svn switch --relocate FROM TO [PATH...]

Description

The first variant of this subcommand (without the
--relocate option) updates your working
copy to point to a new URL. This is the Subversion way to
make a working copy begin tracking a new branch. If
specified, PEGREV determines in
which revision the target is first looked up. See
the section called “Traversing Branches” for an in-depth
look at switching.

Note

Beginning with Subversion 1.7, the svn
switch command will demand by default that the
URL to which you are switching your working copy shares
a common ancestry with item that the working copy
currently reflects. You can override this behavior by
specifying the --ignore-ancestry
option.

If --force is used, unversioned
obstructing paths in the working copy do not automatically
cause a failure if the switch attempts to add the same
path. If the obstructing path is the same type (file or
directory) as the corresponding path in the repository, it
becomes versioned but its contents are left untouched in
the working copy. This means that an obstructing
directory's unversioned children may also obstruct and
become versioned. For files, any content differences
between the obstruction and the repository are treated
like a local modification to the working copy. All
properties from the repository are applied to the
obstructing path.

As with most subcommands, you can limit the scope of
the switch operation to a particular tree depth using the
--depth option. Alternatively, you can
use the --set-depth option to set a new
“sticky” working copy depth on the switch
target.

The --relocate option is deprecated
as of Subversion 1.7. Use svn relocate
(described in svn relocate)
to perform working copy relocation instead.

You can switch just part of
your working copy to a branch if you don't want to
switch your entire working copy, but this is not
generally recommended. It's too easy to forget that
you've done this and wind up accidentally making and
committing changes both to the switched and unswitched
portions of your tree.