Subversion:如何合并特定的提交

时间:2012-07-19 08:16:38

标签: svn merge

我的分支机构有一些提交。我想将分支合并到trunk,但是有一些提交我不会合并到我的分支上的trunk。我该怎么办?

4 个答案:

答案 0 :(得分:35)

您想要完成的任务通常在版本控制系统中称为 cherrypicking

假设您要将修订版345,364和377从分支合并到主干,您将在trunk的干净工作副本的顶级目录中执行以下操作:

svn merge -c345,364,377 ^/_your_branch_

您可以在相应的section of the SVN Book中找到更多信息。

答案 1 :(得分:34)

只是为了延伸Yannick的回答 当您可以将一个/几个特定提交从一个分支合并到另一个分支时(例如需要将分支提交r13和r666从分支''分支到分支'') :

  1. 检查提交可用性(只是为了确保):

    svn diff -c 13,666 https://fullpathtoyourproject/branches/_from_
    
  2. 分支转到

    svn sw https://fullpathtoyourproject/branches/_to_
    
  3. 合并提交

    svn merge -c 13,666 https://fullpathtoyourproject/branches/_from_
    
  4. 如果您需要获取'fullpathtoyourproject',只需输入:

    svn info
    

    在部分网址中,您会看到此路径。

    我更喜欢使用FULL url / path,因为在某些项目中,个人相对路径对我不起作用。

答案 2 :(得分:3)

如果其中一个安装了TortoiseSVN,则以下是将一系列修订版本从一个分支合并到另一个分支的步骤。

  1. 对分支进行本地检出,要合并来自源分支的一系列修订。
  2. 右键单击根文件夹内的-> TortoiseSVN->合并
  3. 默认情况下,单击“合并一系列修订”。
  4. 单击下一步
  5. 输入要合并的URL
  6. 输入要合并的修订的特定范围
  7. 也可以单击“显示日志”,然后选择所需的修订版本或修订范围
  8. 单击“测试合并”以检查它是否合并了所需的修订版/文件。
  9. 点击合并

答案 3 :(得分:-6)

您可以将所需的提交与修订号合并。