witch (sw): 更新工作副本至同一版本库中的不同 URL。
用法: 1、switch URL[@PEGREV] [PATH]
2、switch --relocate FROM-PREFIX TO-PREFIX [PATH...]
1、更新工作副本,与同一版本库中的新 URL 对应。其行为跟 “svn update” 很像,
也是将工作副本切换到同一版本库中某个分支或者标签的方法。PEGREV 决定从
哪个版本查找目标。
如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动
导致失败。如果障碍路径与版本库中的对应路径类型相同(文件或目录),它将成
为受版本控制的路径,但是内容不改变。它意味着障碍路径的子孙,也可能是障
碍路径,同样会受版本控制。对于障碍路径中的文件,如果与版本库内的不同,
将视为工作副本发生本地修改。版本库中的所有属性都应用于障碍路径。
使用 “--set-depth” 选项设置此操作目标的工作副本之新深度。
如果新 URL 与工作副本路径没有版本继承关系,Subversion 将会拒绝操作。选项
'--ignore-ancestry' 可以禁止此检查。
2、选项 “--relocate” 已经淘汰。它的句法等价于
“svn relocate FROM-PREFIX TO-PREFIX [PATH]”。
参见 “svn help update” 以获取报告执行动作的字符列表。
样例:
svn switch ^/branches/1.x-release
svn switch --relocate http:// svn://
svn switch --relocate http://www.example.com/repo/project \
svn://svn.example.com/repo/project
relocate: 重新定位工作副本,指向不同的版本库根 URL。
用法: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]
2. relocate TO-URL [PATH]
改写工作副本 URL 元数据,以反映仅版本库根 URL 的改变。这用于仅版本库根
URL 改变(例如方案或主机名称),但是工作副本内容仍旧与版本库对应的情况。
1. FROM-PREFIX 和 TO-PREFIX 分别对应工作副本的旧 URL 与新 URL 开始子串
(如果你喜欢,可以指定完整的 URL)。请使用 'svn info' 来确定当前工作
副本的 URL。
2. TO-URL 是用于 PATH 的(完整的)新版本库 URL。
例如:
svn relocate http:// svn:// project1 project2
svn relocate http://www.example.com/repo/project \
svn://svn.example.com/repo/project
重定位relocate操作可能的原因:
a) 服务器的IP地址已更改
b) 协议已更改(比如从http://改为 https://)
c) 版本库在服务器的路径已更改
在TortoiseSVN的帮助说明中说明重定位是极少使用的操作,但对于在本地小型内网开发的,由于重装系统,服务器主机变动,重定位应用还是比较多的。