2015-02-05 78 views
0

雖然想幫同事找出其中一些單元測試在SVN歷史壞了,我急忙反向合併的提交,我認爲可能會出現的問題,爲他的工作副本:如何撤銷Subversion(svn)合併而不恢復?

svn merge -c -1234 . 

接着問, 「等等......你工作的副本是乾淨的吧?」不幸的是,所以快速恢復並不是一個好的選擇。我試圖乾淨地撤消它(svn merge -c 1234),但沒有發生任何事情。幸運的是,他確切知道哪些文件發生了變化,因此我們製作了一個補丁,恢復了所有修改後的文件,並應用了該補丁。但是,我想知道是否有更清晰的方式擺脫這種情況。

回答

1

你原來的想法幾乎是正確的。顛覆方式做到這一點本來是

svn merge -c 1234 . --ignore-ancestry 

重新申請反向合併提交。

0

我意識到svn merge -c 1234沒有工作的原因是我們已經超出了1234版本,所以svn認爲沒有必要做任何事情。我後來在辦公桌後嘗試的一個解決方案是下載不同的提交1234,然後將其作爲補丁應用。請注意,我使用的是1234而不是-1234,這可能是反向差異。

svn diff -c 1234 > undo.patch 
svn patch undo.patch 

如果我再次處於原始狀態,這將在保留我的同事的變化的同時乾淨地完成反向合併。