svn:如何撤消一个合并(没有提交)?
我只是做了一个svn merge
合并更改从树干到一个分支:
$ svn merge -r328:HEAD file:///home/user/svn/repos/proj/trunk . --- Merging r388 through r500 into '.': A foo A bar C baz1 C baz2 U duh [...]
但冲突太多了,所以我想撤销这个。
一种方法是提交然后合并回来。 但是由于冲突我不能犯。 在这种情况下撤消的最好方法是什么?
从您的工作副本的顶部recursion地恢复:
svn revert -R .
您将需要手动删除已添加的文件。 如在还原之后,添加的文件将保留在磁盘上,但是它们将处于未跟踪状态(“?foo”)
只要你没有提交,你总是可以恢复撤消所有的更改。
我面临同样的情况,也有一些我不想失去的其他变化。 所以,而不是完整的recursion还原只是svn revert
冲突的项目是对我有好处
svn revert baz1 baz2
只要做到svn resolve
所有的冲突,并承诺:
$ svn resolved baz1 $ svn resolved baz2 $ svn ci -m "oops. bad merge. will revert." Transmitting file data ...... Committed revision 501.
然后,通过合并回到原来的位置,正式撤消它:
$ svn merge -r501:500 --- Reverse-merging r319 into '.': [...]
就是这样,目录中的合并已经被撤消。 现在也承诺:
$ svn ci -m "bad merge has been undone" Transmitting file data ...... Committed revision 502.
比svn revert -R .
的优势svn revert -R .
方法是将所添加的文件全部删除。