代码之家  ›  专栏  ›  技术社区  ›  Kobojunkie

如何使用TortoiseSVN将分支重新整合到父分支中?

  •  1
  • Kobojunkie  · 技术社区  · 11 年前

    所以,我又遇到了这个问题,并决定听取专家的意见(请只告诉那些知道他们在说什么的人)。

    我从另一个分支创建了一个分支(DUMMY-branch)(称为UAT_branch,这个主分支有点像测试版本的主分支)。我在DUMMY-BRANCH中进行了更改,并测试了这些更改,直到我对这些更改感到满意。然后是时候将我的更改合并回主分支了,在本例中是UAT_branch,我继续打开TortoiseSVN来完成这项工作。我打开了在线手册 MERGE TWO DIFFERENT TREES ,然后又一次尝试把这个合并的事情做好。我指定UAT_BRANCH作为FROM(起始URL),指定DUMMY-BRANCH为TO(结束URL)。我测试了合并,最后进行了实际的合并。当我刷新UAT_BRANCH并检查分支中的更改是否已重新集成时,我发现它不是。现在,随后尝试将URL从“与”切换到“与”,但没有结果,可能是因为已经造成了损害或其他原因(我认为已经进行了重新整合,而且无法撤销)。

    我想清楚地解释一下我在这种情况下做错了什么,以及如何在SVN或事实上的乌龟SVN中进行合并。提前谢谢。

    2 回复  |  直到 11 年前
        1
  •  6
  •   the_virt    11 年前

    似乎你试图通过“合并两个不同的树”来完成错误的场景。您需要“重新整合分支机构”的场景,如您参考的在线手册中所述。 请注意,您必须对UAT_BRANCH工作副本执行合并操作,并使用DUMMY-BRANCH作为“From URL”。此外,您的Svn版本必须支持合并跟踪。在合并之前,请确保UAT_BRANCH的工作副本是最新的,然后对其执行“重新合并分支”合并,然后提交更改。

        2
  •  3
  •   Sergio Pelin    11 年前

    在这一点上——正如你所做的几个意图一样,也在切换 从…起 -我们无法确定到底发生了什么,现在的情况如何。尽管如此,我还是建议如下(通过TortoiseSVN UI进行操作)。

    当您想重新整合分支机构时,您必须:

    1. 更新Trunk的本地副本(在您的情况下为UAT_BRANCH)并提交所有更改(如果有的话)。
    2. 端口更改 从主干到分支 。您可以通过选择选项“合并一系列修订”来完成此操作,然后选择Trunk作为 “要合并的URL” 。对于 “要合并的修订范围” 选择分支创建修订号作为范围中的初始修订号,选择HEAD修订号作为最终修订号(也可以将此框留空以获得相同的结果)。试试“测试合并”,如果一切正常,就合并它。现在你有一个用Trunk中的所有修订更新的分支的本地副本。(看起来你这么做可能是出于最初的意图,以防你用“合并一系列修订”来做)。
    3. 如果在前一步中一切顺利,您就可以 将分支与主干合并 。现在选择Trunk本地副本的文件夹,然后从 合并 菜单“重新整合分支”,然后为 “来自URL” 选择分支。对于 “工作副本” 应该显示Trunk本地副本的文件夹。再次,在运行真正的合并之前测试合并它。现在您有一个用分支更新的Trunk的本地副本。如果您提交,您将对回购进行所有更改。

    也许,在你尝试了这么多之后,你足够幸运,仍然有一个用Trunk修订版更新的分支的本地副本(DUMMY-branch)。如果是真的,请执行步骤3。如果你不确定,试着恢复更改(小心不要丢失分支机构的工作,做一份副本以防万一),并完成所有过程。

    祝你好运