SVN将以前的修订版合并到工作副本中

时间:2012-09-23 12:12:46

标签: svn version-control merge

如果

  • 我正在修订第5版的SVN分支。
  • 我做了一个更改,承诺创建修订版r6。
  • 当r6引入问题时,恢复为r5,并提交,创建r7
  • 继续使用r7,最终将更改提交至r10

如何将r6中所做的更改合并到我的工作副本中?

我试过

svn merge -r5:6 .

svn merge -r5:HEAD .

两者似乎什么都不做。我做错了什么?

5 个答案:

答案 0 :(得分:6)

试试这个:

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

或使用更新的语法:

svn merge --ignore-ancestry -c6 .

b.t.w。:我建议您始终指定要使用的文件而不是“。”

答案 1 :(得分:5)

如果您使用的是相对较新的svn版本,则可以使用:

svn merge -c -6 .


(或您想要还原的特定文件,而不是'。')
这是:

的简写
svn merge -r6:5 .

所以,如果您使用较旧的subversion版本(1.6.x之前),则可以使用此语法。

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

答案 2 :(得分:2)

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

  1. 从修订版r6中创建补丁(r6和r5之间的差异)。
  2. 将其应用于工作副本。

答案 3 :(得分:1)

尝试撤消合并出初始还原的修订。

e.g。而不是svn merge -r 5:6尝试 svn merge -r 7:6。

答案 4 :(得分:0)

你可以恢复。创建一个标签。完成后,您可以将标记中的更改合并到您正在使用的分支中。