【问题标题】:Is merging a merge back a problem in subversion?合并合并是颠覆中的问题吗?
【发布时间】:2009-09-02 13:20:29
【问题描述】:

情况如下:在特定的分支上,一些更改已合并到 主干中,并且对分支的更改也已合并回 主干。

我的问题是:如果我尝试将分支中的修订合并回 主干,Subversion 中的合并管理会做什么(如果有的话),而该修订本身只是一个合并主干到分支?

这会导致问题吗?如果有,是什么种类?或者这应该是一件非常好的事情吗?

或者新的合并只是像对待其他任何更改一样处理这些更改并尝试应用它们?

【问题讨论】:

    标签: svn merge


    【解决方案1】:

    这部分取决于您使用的 svn 版本。

    在 1.5 之前,根本没有合并跟踪,因此您必须合并您想要返回的修订。大多数人为此使用脚本名称“svnmerge”。您可以根据需要使用它,并将您已经完成的修订标记为合并 - 之后,svnmerge 将帮助您选择正确的修订并跳过那些已经合并的修订。

    1.5(及更高版本)提供了一些合并跟踪,但它还不是完整的功能。在您的特定情况下(合并两种方式),我认为 svn 的跟踪无法处理它。您可能需要手动来回合并您想要的每个修订。

    就我个人而言,当我在使用 svn 的项目中时,我更喜欢让分支有点短命,并且只合并一种方式(主干到分支),直到最终从分支合并到主干。完成后,我要么将所有内容合并到主干并关闭分支,要么合并我想要的内容并关闭分支。由于可能存在合并问题(很容易出错),我几乎没有让分支保持活动状态。

    【讨论】:

      【解决方案2】:

      即使是较新的 SVN 版本的合并跟踪也无法自动处理这种情况。因此,您已经指定了要手动合并回主干的修订,并且必须确保排除从主干合并到分支的修订。

      如果您尝试重新合并已经存在的主干更改,它们将被视为正常修改。这将不可避免地导致冲突。

      【讨论】:

        【解决方案3】:

        使用 1.5 或更高版本的 subversion,您必须为 svn merge 指定 --reintegrate 选项,以便“反过来”仅作为先前合并副本的合并。

        请注意 1) 由您决定何时应该使用此选项 2)这将是该分支的最后一次合并。在此合并后 svn 将认为分支已死,进一步的工作将需要销毁并重新创建分支。

        这直接来自svn docs,尽管文档可以使用更精细的细分。

        【讨论】:

          猜你喜欢
          • 2011-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多