SVN将以前的修订合并到工作副本中
如果SVN将以前的修订合并到工作副本中,svn,version-control,merge,Svn,Version Control,Merge,如果 我在SVN的第5版分支机构工作 我做了一个更改,承诺创建修订版r6 当r6引入问题时,返回到r5,然后提交,创建r7 继续使用r7,最终将更改提交到r10 如何将r6中所做的更改合并回工作副本 我试过了 svn merge -r5:6 . 及 这两个似乎都没用。我做错了什么?我对命令行svn不太熟悉。但是,如果正确的用法不能得到您想要的结果,我将尝试以下方法: 从版本r6(r6和r5之间的差异)创建修补程序 将其应用于工作副本 尝试反转合并了初始还原的修订 e、 g.代替svn合并-
- 我在SVN的第5版分支机构工作
- 我做了一个更改,承诺创建修订版r6
- 当r6引入问题时,返回到r5,然后提交,创建r7
- 继续使用r7,最终将更改提交到r10
svn merge -r5:6 .
及
这两个似乎都没用。我做错了什么?我对命令行svn不太熟悉。但是,如果正确的用法不能得到您想要的结果,我将尝试以下方法:
尝试反转合并了初始还原的修订 e、 g.代替svn合并-r 5:6尝试
svn合并-r 7:6。您可以恢复。创建一个标记。完成后,您可以将标记中的更改合并到正在使用的分支。如果您使用的是相对较新的svn版本,则可以使用:
(或要还原的特定文件,而不是“.”
这是以下内容的简写:
svn merge -r6:5 .
因此,如果您使用的是较旧的subversion版本(1.6.x之前),则可以使用此语法。
这可能会将属性引入存储库(svn:mergeinfo,如果内存可用),至少在对整个目录执行合并时是这样。将更改还原为单个文件或一组文件不会影响属性。如果不想将这些属性添加到存储库中,则可能需要退回到修补程序(自动或手动)。尝试以下操作:
svn merge --ignore-ancestry -r5:6 .
或者使用更新的语法:
svn merge --ignore-ancestry -c6 .
b、 t.w.:我建议您始终指定要使用的文件,而不是“.”谢谢,我考虑过这一点,最后选择了
svn diff-r5:6>patch.diff
patch-p0
。我仍然很想知道是否有人知道如何通过svn做到这一点。我也这么做,只是重新应用了一个diff文件。这在Subversion 1.7.19中非常有效,谢谢!我同意,这是问题的正确答案。谢谢你,Midis,不行。颠覆没有任何作用。答案在我看来也是错误的-c-6
应该撤销r6变更集。但是我们想重新引入r6变更集。来自@midisworks的答案。
svn merge --ignore-ancestry -r5:6 .
svn merge --ignore-ancestry -c6 .