2008-09-25 45 views
1

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

我看到目前唯一的解决办法是复制我的地方更改的文件,删除结账,做一个完整的新的结算和文件复制回。

有没有更好的解决办法来拯救一个破碎的检验和/或更改?

UPDATE 常见问题Mikael Sundberg链接包含答案。我把它写在这里,因为他没有明确提及它。还有,可以降级升级库脚本,当它是安全的:

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

回答

0

我不知道如果我理解正确的话您的问题,但在这里是一些提示:

第一个提示 - 你试过SVN 干净命令?

下一个可能是你没用:),但很多人习惯使用CVS没有意识到,SVN有功能类似的,所以我把它写下来。

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

在其它情况下(未视窗也不乌龟SVN),调查documentation用于上述命令的命令行版本。

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

你写你使用SSH外壳 - 避免与混合shell会话我总是用不同的背景颜色为每个服务器(和账号),我登录(即黑底白字的发展问题,黄在测试服务器上在海军上,在生产服务器上在绿色上显示黄色)。

这节省了我很多次:)。

+0

谢谢,但在版本库升级之后,Subversion不再执行任何*命令,甚至没有`log`或`status`,所以你的解决方案将无法工作。 – jkramer 2008-09-25 20:09:02