有没有小伙伴跟小编一样,辛辛苦苦改完 SVN 地址,以为万事大吉了,结果一点同步,屏幕上就跳出一堆红色的错误提示,文件半天同步不下来,急得直拍桌子?这时候别提多闹心了,活干不了不说,还不知道问题出在哪儿。别慌,今天咱就来聊聊,SVN 修改地址后文件同步失败,到底该怎么办,保证让你看完心里有谱。
先看看最常见的原因:地址是不是输错了?
同步失败,十有八九是地址的问题,新手特别容易在这上面栽跟头。你想啊,新地址可能比旧地址多了个字母,或者少了个斜杠,甚至协议从 http 变成了 https,同步的时候肯定会失败。
- 怎么检查呢?打开 SVN 客户端,找到项目的属性,看看里面显示的新地址对不对。比如旧地址是 “http://192.168.1.1/svn/project”,新地址应该是 “http://192.168.2.2/svn/project”,你得一个字符一个字符地比对,别嫌麻烦。
- 要是发现地址输错了,赶紧重新修改一次。用 TortoiseSVN 的话,右键项目选 “Relocate”,重新输入正确的地址;用命令行的话,就再执行一次 “svn switch –relocate” 命令,把正确的地址输进去。
- 小编之前就犯过这错,把新地址里的 “svn” 写成了 “sven”,结果同步一次失败一次,后来对着管理员给的地址念了一遍,才发现多了个 “e”,改过来立马就好了。
权限不够?这也是常有的事
新地址的服务器,可能对你的账号权限做了调整,这时候就算地址没错,同步也会失败,一般会提示 “认证失败” 或者 “没有权限访问”。
- 这时候你可以试试重新输入账号密码。右键项目选 “SVN 更新”,弹出来的认证窗口里,把账号密码重新输一遍,说不定就成了。
- 要是还不行,就得问问团队里的管理员了,看看是不是新服务器上没给你开权限,或者账号有没有被禁用。别自己闷头试,管理员一句话可能就解决了。
- 有个同事就遇到过这情况,他改完地址同步失败,以为是自己操作错了,折腾了半小时,结果是管理员忘给他开新服务器的权限了,加上权限立马就同步成功了。
本地文件有冲突?先处理干净再说
如果你改地址之前,本地有没提交的文件,或者本地文件和旧服务器上的文件不一样,改完地址后同步,很容易出现冲突,导致同步失败。
- 这时候你得先看看本地哪些文件没提交。用 TortoiseSVN 的 “检查修改” 功能,就能看到哪些文件有变动。
- 要是这些修改还有用,就想办法提交到新服务器。但因为地址已经改了,直接提交可能不行,你可以先把这些文件复制到别的地方备份,然后把本地项目还原到和旧服务器一致的版本,再改地址同步,最后把备份的文件放回去重新提交。
- 要是这些修改没用了,干脆右键项目选 “还原”,把本地文件恢复到上次同步的状态,再试试同步新地址,一般就能成功。
缓存搞的鬼?清一清说不定就好了
SVN 会缓存一些服务器的信息,改了地址后,旧的缓存可能还在,导致同步的时候找不到新服务器,这种情况虽然不常见,但也得注意。
- 清理缓存的方法很简单,用 TortoiseSVN 的话,打开 “设置”,找到 “已保存的数据”,把里面的 “认证数据” 和 “服务器证书” 都清除掉,然后重新同步,这时候会让你重新输入账号密码,输完可能就好了。
- 用命令行的话,可以删除项目目录里的 “.svn” 文件夹(这个文件夹是隐藏的,得先显示隐藏文件),不过删之前最好备份一下,删完后重新 “checkout” 新地址的项目,虽然麻烦点,但能解决缓存问题。
服务器端的问题?别光怪自己操作
有时候同步失败,可能不是你的错,是新服务器那边出了问题。比如服务器没启动,或者新地址的项目路径根本不存在。
- 你可以先在浏览器里输入新的 SVN 地址,看看能不能访问。如果浏览器都打不开,说明服务器有问题,赶紧告诉管理员,让他们检查服务器。
- 要是浏览器能访问,但 SVN 客户端同步失败,可能是服务器的 SVN 服务没开,或者端口被封了,这也得让管理员处理,你自己解决不了。