2012-09-23 65 views
8

如果SVN合并以前的版本到工作副本

  • 我工作的SVN分支在修订5.
  • 我做出改变,致力于打造修订R6。
  • 回复到R5为R6引入的任何问题,并承诺,创造R7
  • 继续R7上工作,最终提交更改多达R10

如何合并在R6中所做的更改回我的工作复制?

我已经试过

svn merge -r5:6 . 

svn merge -r5:HEAD . 

这两者似乎什么也不做。我究竟做错了什么?

回答

2

我不太熟悉命令行svn。但如果正确的用法没有得到你想要的结果,我想尝试:

  1. 从版本r6(r6和r5之间的区别)创建一个补丁。
  2. 将其应用于工作副本。
+1

谢谢,我已经考虑过了,最后还是用'svn diff -r5:6> patch.diff'' patch -p0 user1692222

+0

我这样做,只是重新应用diff文件。 –

1

尝试颠倒合并出初始还原的修订。

例如而不是svn merge -r 5:6尝试 svn merge -r 7:6。

0

您可以恢复。创建一个标签。一旦你完成,你可以,如果你使用的是相对较新的SVN版本从标签到你工作的分支合并改变

6

,你可以使用:

svn merge -c -6 . 


(或特定文件(S)你想恢复,而不是)
这是一个缩写 '':

svn merge -r6:5 . 

所以如果你在旧的subversion版本(在1.6.x之前)可以使用这种语法。

这可能会将属性引入您的存储库(svn:mergeinfo,如果内存服务),至少如果您在整个目录上执行合并。将更改还原为单个文件或一组文件不会影响属性。如果您不希望将这些属性添加到存储库中,则可能需要回退到补丁(自动或手动)。

4

试试这个:

svn merge --ignore-ancestry -r5:6 . 

或使用新的语法: “”

svn merge --ignore-ancestry -c6 . 

b.t.w:我建议始终指定你想要的,而不是工作的哪些文件

+0

这与Subversion 1.7.19完美结合,谢谢! – iboisver

+0

我同意,这是问题的正确答案。谢谢Midis。 – Thibault