SVN服务器迁移后检出失败:旧服务器地址残留问题排查
SVN迁移后检出失败(指向旧服务器)的排查与解决
看起来你遇到的问题大概率是TortoiseSVN的缓存残留或者本地配置里还绑定着旧服务器地址导致的——毕竟旧服务器已经停了,报错还指向它,肯定是本地有“记忆”没清干净。咱们一步步来排查解决:
一、先确认检出URL是不是填错了
别笑,这是最容易忽略的点!迁移后很容易惯性输入旧服务器地址,先仔细检查你在TortoiseSVN检出窗口里填的URL是不是新Windows Server 2012的地址,确保没有拼写错误或者复制粘贴错了。
二、清理TortoiseSVN的本地缓存
TortoiseSVN会缓存服务器的认证信息、访问过的仓库地址这些数据,直接清理就行:
- 右键点击桌面空白处,打开「TortoiseSVN → Settings」
- 切换到「Saved Data」标签页
- 依次点击以下选项的「Clear」按钮:
- Authentication data:清除旧服务器的登录账号密码缓存
- Repository URLs:清除曾经访问过的仓库地址记录
- Log caches:日志缓存也一起清了(可选,但能避免潜在问题)
- 关闭设置窗口,重新尝试检出操作
三、检查SVN全局配置文件
有时候全局配置里可能藏着旧服务器的配置,比如服务器映射或者代理设置:
- 还是在TortoiseSVN的Settings窗口,切换到「General」标签页,点击「Edit」打开全局配置文件(路径一般是
%APPDATA%\Subversion\config) - 翻找文件里的
[servers]或[global]段落,看看有没有指向旧服务器的配置项,比如http-proxy-host或者自定义的仓库路径映射,找到后直接删除或修改成新地址 - 另外可以去
%APPDATA%\Subversion\目录下,把servers文件备份后删除(这个文件存着特定服务器的配置),然后重启TortoiseSVN再试
四、排查仓库的svn:externals引用
如果要检出的仓库本身配置了svn:externals,而且里面还指向旧服务器地址,也会导致报错:
- 你可以先通过浏览器访问新SVN服务器的仓库地址,查看根目录的属性(一般SVN网页端能看到
svn:externals),如果发现有旧服务器的引用,先在新服务器上修改这个属性,替换成新地址后再进行检出
五、用命令行SVN工具验证
有时候GUI工具的缓存比较顽固,用命令行工具能更直接定位问题:
- 打开CMD或PowerShell,执行命令:
svn info <你的新SVN服务器URL> - 如果命令行返回的信息里服务器地址是正确的,那说明是TortoiseSVN的GUI缓存没清干净,重启电脑再试;如果命令行也报错指向旧服务器,那回到前面的步骤,重点排查全局配置文件的问题
一般按这个流程走,就能解决旧服务器地址残留的问题了。
内容的提问来源于stack exchange,提问作者iVikashJha




