如何合并两个SVN分支?

16

我有两个SVN分支,"b1"和"b2"。我想将所有在"b1"分支上的提交合并到"b2"分支上。我尝试了一些类似于

svn merge -r HEAD:HEAD b1 b2

但是它什么也没做。我肯定我的命令写错了,但是我找不到好的文档来解释它。我想在客户端上完成这个操作而不创建第三个分支。

我正在使用不支持reintegrate选项的SVN 1.4.4。

我该怎么做呢?


2
只需输入“svn help merge”即可获取帮助。 - Ariel Popovsky
2个回答

18

你的问题出在 -r 标志上。你需要指定一个修订版本的 范围。因此,例如:

svn merge -r 13:HEAD b1 b2

要找出正确的版本号,您可以执行以下操作:

svn log --stop-on-copy b1
log仅列出发生在b1上的提交。您将看到的最小修订号将是您选择的。

我从未使用过这种形式。我总是确保我主动在分支b2上,然后执行以下操作:

svn merge -r 13:HEAD url://to/branch/b1

7

Subversion书籍svn合并参考页面中:

$ svn merge --reintegrate \
            http://svn.example.com/repos/calc/branches/my-calc-branch
--- 将库URL之间的差异合并到'.'中:
U    button.c
U    integer.c
U    Makefile
 U   .

$ # 构建,测试,验证...

$ svn commit -m "将my-calc-branch合并回主干!"
发送中        .
发送中        button.c
发送中        integer.c
发送中        Makefile
正在传输文件数据 ..
提交了版本 391。

编辑: 好的,那么您正在使用旧版本的Subversion。在这种情况下,请参阅将整个分支合并到另一个分支,该内容来自书籍的1.4版本


我找不到关于reintegrate具体作用的好文档。我正在将一个分支合并到另一个分支,而不是合并到主干。正如问题中指定的那样,这将在两个分支的工作副本上完成(考虑本地目录而不是svn服务器URL)。你能否更新你的答案以反映这些问题? - Tony
2
我还有 SVN 版本 1.4.4,似乎不支持 reintegrate 选项。由于这似乎是一个更长命令的快捷方式,我希望能得到更长版本的命令。谢谢! - Tony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接