我偶然发起了一次提交而没有重新加载我的文件,之前的一些提交取代了之前文本的早期提交的更改。当我在代码的不同部分工作时,svn没有报告任何冲突。但这完全是一团糟。如何在不手动执行的情况下从此问题中恢复?要恢复,我需要保留当前的更改,并恢复我在提交时意外删除的程序其他部分的先前更改。
答案 0 :(得分:0)
假设您不小心删除了修订版100中的文件。在工作副本更新到修订版99. svn up -r 99
。这将带来您工作副本中的所有已删除文件。备份您删除的文件。现在将工作副本更新到最新版本svn up
。并将文件从备份复制到工作副本svn add
和svn commit
。
答案 1 :(得分:0)
我认为在单个文件中修复覆盖更改的最佳方法是手动调用3向合并工具。
假设您有基于更改的修订版1。修订版3是您通过更改提交的内容。不幸的是,修订版2发生在两者之间,这些修改被修订版3删除了。
因此,调用一个3向合并工具,其中“base”设置为修订版1的文件,而修订版2和3中的文件作为另外两个修订版。
您可以使用svn cat
命令获取所需文件。
保存结果并提交为修订版4以纠正错误。
将来,在提交之前总是关闭编辑器,并且在提交之前以及开始工作之前总是进行更新。