代码之家  ›  专栏  ›  技术社区  ›  fred basset

SVN将分支中的单个文件修订合并到主干中

  •  36
  • fred basset  · 技术社区  · 14 年前

    我在一个分支上做了一些修复,我想把它合并回主干中。我不想将整个分支合并到主干中,只需要我完成的几个分支签入。执行此操作的正确语法是什么?

    泰, 弗莱德

    2 回复  |  直到 12 年前
        1
  •  36
  •   the_mandrill    14 年前

    我不确定标题中提到的合并单个文件时您要问什么,但问题的文本中提到的是单个修订。在合并单个修订的情况下,您需要:(合并修订100、105、115中提交的更改)

    cd trunk
    svn merge -c 100 -c 105 -c 115 http://..../branches/mybranch .
    

    如果只合并版本100中影响file.cpp的部分:

    cd trunk/path/to/file.cpp
    svn merge -c 100 http://../branches/mybranch/path/to/file.cpp file.cpp
    
        2
  •  2
  •   thekbb    12 年前

    你想合并整个分支。 从SVN 1.5开始,有关合并内容的信息存储在repo中 svn:mergeinfo 属性。如果合并单个文件 SVN:合并信息 会深深地扎在树上。当有人试图从项目顶部进行合并时, SVN:合并信息 不会存在,他们必须决定接受这个变更集。如果您真的不希望它被合并,您应该从项目的顶部合并,然后只提交顶级目录。( SVN:合并信息 将是唯一的更改)和您想要的文件。

    Way more than anyone ever wanted to know about mergeinfo