SVN。分别合并每个分支修订版

时间:2014-01-23 17:03:37

标签: svn merge

我们需要将我们的分支合并回主干。

我们希望所有提交来自分支的消息也是im trunk。

所以我们可能需要分别合并每个修订版本,如:

原始提交消息: “修复了错误的错误”

合并后提交消息 “从分支合并:修复了错误的错误”

有人知道自动化的方法吗?

谢谢

1 个答案:

答案 0 :(得分:2)

这不是你想要的,但我会告诉你如何获得你想要的信息,而不用任何麻烦的脚本。

自1.5.0以来的Subversion已经有--use-merge-history-g选项进行记录。如果你进行合并,那么当你执行-g时,它将显示日志中合并修订版的日志消息。

E.G。你会得到这样的输出:

$ svn log -g
------------------------------------------------------------------------
r5 | breser | 2014-01-23 10:00:57 -0800 (Thu, 23 Jan 2014) | 2 lines

Merged badbug branch

------------------------------------------------------------------------
r4 | breser | 2014-01-23 10:00:41 -0800 (Thu, 23 Jan 2014) | 2 lines
Merged via: r5

Fix that bad bug

------------------------------------------------------------------------
r3 | breser | 2014-01-23 10:00:10 -0800 (Thu, 23 Jan 2014) | 2 lines
Merged via: r5

Create badbug branch

------------------------------------------------------------------------
r2 | breser | 2014-01-23 09:58:07 -0800 (Thu, 23 Jan 2014) | 2 lines

Add foo

------------------------------------------------------------------------
r1 | breser | 2014-01-23 09:57:51 -0800 (Thu, 23 Jan 2014) | 2 lines

Create trunk and branches

------------------------------------------------------------------------

注意r3和r4如何具有Merged via:行。因为这些修订由r5合并回来,并且通过合并跟踪显示。

如果您不喜欢,那么您将需要编写一些内容来确定要合并的修订版本,然后对每个重复日志消息的内容进行合并。您可以使用svn mergeinfo --show-revs eligible ^/branches/source ^/branches/target(其中源是您要合并的分支,目标是要合并的分支),以获取要合并的合格修订列表。然后,只需使用svn propget svn:log --revprop -r $REV来获取提交消息,修改消息以添加标题,说明它是合并,运行svn merge -c $REV ^/branches/source ^/branches/target -m $MESSAGE

但在我看来,通过-g处理客户可以为您做的事情需要做很多工作。

相关问题