-1

我正在寻找一个非常常见但被忽视的脚本,直到最后一分钟动作,SVN 合并。

理想情况下,它应该为当前用户运行,让我们说最近 2 天以您的名义提交。因此,在您在分支上工作的情况下,运行此脚本会将您的更改合并到主干并启动提交对话框,以便您可以在提交之前进行验证。

我们的分支策略允许使用trunk-branch1-branch1.1,因此您将从最后开始并合并到主干。

鉴于我们有大量的开发人员,我并不是在寻找灵丹妙药,而是在寻找可以促进这一过程的东西。

我查看了 svn 命令(mergeinfo),但不确定如何应用“按用户”过滤器。

非常感激

4

1 回答 1

1

我真的不明白你为什么要按用户合并。老实说,你似乎让你的生活变得更加困难。一方面,像这样合并一个用户很可能会产生冲突,在我看来,这违背了编写合并脚本的全部目的。

但是您可以使用svn mergeinfo --show-revs eligible ^/branches/mybranch ^/trunk来查找有资格合并回您的分支的主干的转速。然后svn log -r $REV在每个修订版上运行并忽略不在正确日期范围或用户中的修订版。然后合并这些提交。1.9出来的时候mergeinfo会有--xml--log选项。因此,您可以将这两个步骤组合成一个命令,并使用 XSLT 为您进行过滤,类似于我给出的答案:列出所有由用户更改的文件 b/w 两次修订

话虽如此,您应该只使用svn merge --reintegrate ^/branches/mybranch当前目录是最新的更新和未修改的主干工作副本,它将合并来自分支的所有更改。如果您使用的是 1.8,则可以不使用该--reintegrate选项,因为1.8 会自动检测合并是否为重新集成。这样做可以最大限度地减少冲突。

如果您有嵌套分支,则必须合并所有分支才能到达树干。因此,如果您有一个名为 branch1 off trunk 和 branch1.1 off branch1 的分支,那么您需要从 branch1.1 重新集成到 branch1,然后再从 trunk 合并回来。

于 2014-01-28T05:33:20.657 回答