Subversion:如何合并特定的提交

Clo*_*own 38 svn merge

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

Yan*_*eau 38

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

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

svn merge -c345,364,377 ^/_your_branch_
Run Code Online (Sandbox Code Playgroud)

您可以在SVN Book的相应部分中找到更多信息.


iMy*_*sak 35

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

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

    svn diff -c 13,666 https://fullpathtoyourproject/branches/_from_
    
    Run Code Online (Sandbox Code Playgroud)
  2. Swith在分支:

    svn sw https://fullpathtoyourproject/branches/_to_
    
    Run Code Online (Sandbox Code Playgroud)
  3. 合并提交

    svn merge -c 13,666 https://fullpathtoyourproject/branches/_from_
    
    Run Code Online (Sandbox Code Playgroud)

如果您需要获取'fullpathtoyourproject',只需输入:

svn info
Run Code Online (Sandbox Code Playgroud)

在部分URL中,您将看到此路径.

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


Pra*_*nth 5

如果安装了 TortoiseSVN,下面是将一系列修订从一个分支合并到另一个分支的步骤。

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