如何修复“升级的”颠覆工作目录?

时间:2008-09-25 19:44:21

标签: svn version conflict

这可能听起来很愚蠢,但有时我遇到两个版本的颠覆之间的版本冲突。我用sshfs在开发服务器上挂载一个目录,然后用我的本地Vim编辑代码。对于颠覆的东西,如更新,提交等我在服务器上ssh并在那里做。但是,有时我会混淆我的shell并意外地在挂载目录中的本地shell中进行更新或提交。 Subversion退出并出现错误,这很好。但是,当我尝试在我的ssh会话中在开发服务器上执行相同的操作时,subversion说工作目录/ subversion的版本错误。服务器上的subversion版本比我的笔记本上的版本旧,所以我想我的(较新的)版本以某种方式升级工作目录,因此它们与开发服务器上的旧版本不兼容。有时删除.svn / lock文件会有所帮助,但前提是我在笔记本上执行subversion命令后立即执行此操作。当我之后在开发服务器上执行命令时,锁定文件消失,我看不到挽救结帐的方法。如果存储库不是那么大,那就不会那么糟糕。特别是当我做了很多改变而不能提交时。

我目前看到的唯一解决方案是复制我在某处更改的文件,删除结帐,执行全新的结帐并将文件复制回来。

是否有更好的解决方案来挽救破损的结帐和/或我的更改?

更新 常见问题Mikael Sundberg链接包含答案。我在这里写下来,因为他没有明确地提到它。有一个脚本可以降级已升级的存储库,当它安全时:

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

2 个答案:

答案 0 :(得分:1)

也许此FAQ条目可能会有所帮助: http://subversion.tigris.org/faq.html#working-copy-format-change

答案 1 :(得分:0)

我不确定我是否理解你的问题,但这里有一些提示:

第一个提示 - 您是否尝试过SVN Clean 命令?

下一个对你来说可能没用:),但很多人过去常常使用CVS并没有意识到SVN有这样的功能,所以我把它写下来。

如果您使用Windows和Tortoise SVN client,则可以从上下文菜单(鼠标右键)中选择显示日志命令。当出现签到列表时,选择最后一个好的,并从上下文菜单命令中选择还原到此修订

在其他情况下(不是Windows或Tortoise SVN),请调查documentation以获取上述命令行版本的命令。

下一个提示可以帮助您避免混合贝壳。

你写过你使用SSH shell - 以避免混合shell会话的问题我总是为每个服务器(和帐户)使用不同的背景颜色,我登录(即黑色白色用于开发,黄色在测试服务器上的海军和生产服务器上的绿色黄色。

这样可以节省很多次:)。