svn switch (sw)
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 的 更新.
选项
--accept
ACTION
--depth
ARG
--diff3-cmd
CMD
--force
--ignore-ancestry
--ignore-externals
--quiet
(-q
)--relocate
--revision
(-r
)REV
--set-depth
ARG
示例
如果你现在正在目录 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.
提示 | |
---|---|
用户 可以 只切换工作副本的一部分到一个 新的分支, 但这不是推荐的做法. 因为很容易忘记工作副本只是部分切换 的, 然后用户意外地同时修改并提交到已切换和未切换的目录树中. |