Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN将以前的修订合并到工作副本中_Svn_Version Control_Merge - Fatal编程技术网

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
如何将r6中所做的更改合并回工作副本

我试过了

svn merge -r5:6 .


这两个似乎都没用。我做错了什么?

我对命令行svn不太熟悉。但是,如果正确的用法不能得到您想要的结果,我将尝试以下方法:

  • 从版本r6(r6和r5之间的差异)创建修补程序
  • 将其应用于工作副本

  • 尝试反转合并了初始还原的修订

    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 .