这听起来可能很愚蠢,但有时我会遇到两个颠覆版本之间的版本冲突。我使用 sshfs 在开发服务器上挂载一个目录,然后使用本地 Vim 编辑代码。对于像更新、提交等颠覆性的东西。我在服务器上 ssh 并在那里做。但是,有时我会混淆我的 shell 并且不小心在挂载目录中的本地 shell 中进行更新或提交。Subversion 退出并出现错误,这很好。但是,当我尝试在我的 ssh 会话中的开发服务器上做同样的事情时,subversion 说工作目录/subversion 有一个错误的版本。服务器上的颠覆版本比我笔记本上的版本旧,所以我猜我的(较新)版本以某种方式升级了工作目录,因此它们与开发服务器上的旧版本不兼容。有时删除 .svn/lock 文件会有所帮助,但前提是我在笔记本上执行 subversion 命令后立即执行此操作。当我之后在开发服务器上执行命令时,锁定文件消失了,我看不到拯救结帐的方法。如果存储库不是那么大,这不会那么糟糕。特别是当我做了很多更改并且无法提交时。
我目前看到的唯一解决方案是将我更改的文件复制到某处,删除结帐,进行全新的结帐并将文件复制回来。
是否有更好的解决方案来挽救损坏的结帐和/或我的更改?
更新 Mikael Sundberg 链接的常见问题解答包含答案。我把它写在这里,因为他没有明确提到它。有一个脚本可以在安全的情况下降级升级的存储库:
http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py