我正在寻找一个非常普遍但被忽略的脚本,直到最后一分钟的动作,SVN合并。
理想情况下,它应该为当前的用户运行,并以您的名字命名。因此,在您在分支上工作的情况下,运行此脚本将合并您的中继线并启动"提交对话",因此您可以在提交之前进行验证。
我们的分支策略允许TRUNK-BRANCH1-BRANCH1.1,因此您将从结尾开始并合并到后备箱。
鉴于我们是大量的开发人员,我不是在寻找银弹,而是可以促进该过程的东西。
我查看了SVN命令(Mergeinfo),但不确定如何应用"用户"过滤器。
非常感谢
我真的不明白您为什么要与用户合并。老实说,看来您正在使自己的生活看起来更加困难。对于一件事,合并一个用户合并的一件事很可能会造成冲突,在我看来,这打败了脚本抄写合并的全部目的。
但是,您可以使用svn mergeinfo --show-revs eligible ^/branches/mybranch ^/trunk
来找到有资格合并到分支的中继线的Revs。然后在每个修订版上运行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的分支1,则需要从分支1.1重新融合到分支1.1。