2014-12-05 93 views
0

我在意外地发起了一个提交,没有重新加载我的文件后,一些先前的承诺,取代了先前的文本更早的承诺的变化。由于我正在编写代码的不同部分,svn没有报告任何冲突。但它是一个完整的混乱。如何在不手动执行的情况下从此问题中恢复?为了恢复,我需要保留我目前的修改,以及恢复我在我的提交中意外删除的程序其他部分的以前更改。如何恢复一个svn提交意外删除以前的提交内容?

回答

0

我认为在单个文件中修改覆盖更改的最好方法是手动调用3路合并工具。

假设您有基于您的更改的修订版本1。修订版3是您对您所做的更改所做的承诺。不幸的是,版本2发生在两者之间,并且这些更改被修订版本3删除。

因此,调用一个三维合并工具,其中“base”设置为修订版本1的文件,而修订版本2和3中的文件为另一个两个版本。

您可以使用svn cat命令获取所需的文件。

保存结果并作为修订版4提交以纠正错误。

将来,在您提交之前,请始终关闭您的编辑器,并且在您提交之前以及开始工作之前始终进行更新。

+0

我最终这样做了。我认为我的编辑器动态地将更改加载到磁盘上,因为mac上的大多数文件动态地改变,而不像Windows。 – 2014-12-05 23:00:36

0

假设您不小心删除了修订版本100中的文件。在您的工作副本更新至修订版本99. svn up -r 99。这会将工作副本中的所有已删除文件都带出来。备份您删除的文件。现在将工作副本更新到最新版本svn up。并将文件从备份复制到工作副本svn addsvn commit