11

如果

  • 我正在修订版本 5 的 SVN 分支上工作。
  • 我进行了更改,承诺创建修订版 r6。
  • 在 r6 引入问题时恢复到 r5,并提交,创建 r7
  • 继续在 r7 上工作,最终提交到 r10 的更改

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

我试过了

svn merge -r5:6 .

svn merge -r5:HEAD .

两者似乎都无济于事。我究竟做错了什么?

4

5 回答 5

7

尝试这个:

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

或使用更新的语法:

svn merge --ignore-ancestry -c6 .

顺便说一句:我建议始终指定要使用的文件而不是“。”

于 2015-02-03T15:33:52.197 回答
5

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

svn merge -c -6 .


(或您要还原的特定文件,而不是“。”)
这是以下的简写:

svn merge -r6:5 .

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

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

于 2013-09-04T15:59:43.940 回答
2

I am not too familiar with command line svn. But in case the correct usage does not get you the result you want here is what I would try:

  1. Create a patch out of revision r6 (differences between r6 and r5).
  2. Apply it on the working copy.
于 2012-09-23T12:25:30.050 回答
1

尝试反转合并出初始还原的修订。

例如,代替 svn merge -r 5:6 尝试 svn merge -r 7:6 。

于 2012-10-29T17:47:20.940 回答
0

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

于 2012-10-29T17:51:33.210 回答