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.
svn switch (sw) — 将工作副本更新到另一个 URL.
svn switch
URL
[@PEGREV
] [PATH
]
svn switch --relocate
FROM
TO
[PATH
...]
命令的第一种形式 (不带有选项 --relocate
) 把工作
副本更新到一个新的 URL. 这是 Subversion 提供的, 用于让工作副本跟踪一
个新分支的方式. 如果指定了 PEGREV
, 则
PEGREV
决定了 Subversion 在哪个版本号内
查找目标路径. 关于分支切换的更多信息, 见 “遍历分支”一节.
注意 | |
---|---|
从 Subversion 1.7 开始, svn switch 要求新
的 URL 必须和工作副本当前的 URL 具有相同的祖先. 为了忽略这一要求,
可以指定选项 |
如果指定了选项 --force
, 那么 svn
switch 在添加一个新路径时, 如果该路径在切换前是一个未
被版本控制的路径, 将不会产生一个错误. 如果未被版本控制的路径和
切换后的新路径类型相同 (文件或目录), 则路径将被纳入版本控制, 但原来
的内容保持不变, 这也意味着目录的子文件也可能被纳入版本控制. 对于文件
来说, 不同的部分将被当作本地修改. 来自仓库的所有属性都会被应用到路径
上.
和大多数子命令一样, 用户可以通过选项 --depth
限制 svn switch 的作用深度. 相应地, 用户还可以用
选项 --set-depth
为目标路径设置新的
“粘着” 深度.
从 Subversion 1.7 开始, 选项 --relocate
已不再
推荐使用, 而应直接使用 svn relocate (见 svn relocate) 完成工作副本仓库根 URL 的
更新.
如果你现在正在目录 vendors
内, 而现在你想
让该目录指向分支 vendors-with-fix
:
$ 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.
工作完成后, 可以再切换回分支 vendors
:
$ 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.
提示 | |
---|---|
用户 可以 只切换工作副本的一部分到一个 新的分支, 但这不是推荐的做法. 因为很容易忘记工作副本只是部分切换 的, 然后用户意外地同时修改并提交到已切换和未切换的目录树中. |