当 SVN 仓库地址发生变更(如服务器迁移、协议更换等)时,需使用 svn relocate 命令更新本地工作副本指向的新地址。若工作副本中包含 externals(外部引用),还需特别处理这些外部依赖项的地址更新。
核心操作步骤
1. 更新主工作副本地址
使用 svn relocate 命令或 TortoiseSVN 图形界面修改主工作副本的根 URL。
2. 单独处理每个 externals 目录
externals 不会随主工作副本自动重定位,必须逐个进入 externals 对应的子目录,分别执行 relocate 操作。
具体方法
命令行方式
进入主工作副本根目录
cd /path/to/your/working/copy
更新主工作副本
svn relocate <新仓库URL>
进入每个 externals 子目录并分别更新
cd <externals子目录1>
svn relocate <新仓库URL>
cd ../<externals子目录2>
svn relocate <新仓库URL>
... 依此类推
可通过 svn info 查看当前 URL,通过 svn propget svn:externals . 列出所有 externals 定义及路径。
TortoiseSVN 图形方式(推荐)
在主工作副本根目录右键 → TortoiseSVN → Relocate...
修改"至 URL"字段为新地址 → 点击"确定"
关键步骤:若包含 externals,需逐一进入每个 externals 目录(通常显示为带右上箭头的文件夹)
在每个 externals 目录中重复步骤 1--2
⚠️ 注意:若未在 externals 所在目录执行 relocate,其地址仍指向旧 URL,导致后续 svn update 失败