SVN快速合并



我正在寻找一个非常普遍但被忽略的脚本,直到最后一分钟的动作,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。

最新更新