2014-12-05 136 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