【发布时间】:2016-08-10 23:21:06
【问题描述】:
我知道与 Tortoise SNV 的合并已经讨论过(详细地),但我找不到我的情况的答案。我知道我可以使用合并向导将开发分支合并到主干中,但是如果我想将 多个 分支合并到主干中,正确的工作流程是什么?
在我的情况下,我从一个项目主干创建了三个开发分支(每个开发人员一个)。最初,开发分支和主干是相同的。开发人员也在项目的不同区域工作,因此多人不会使用相同的文件。所以,例如,我有trunk、b1、b2和b3,其中trunk = b1 = b2 = b3。
现在,经过一些开发,我想将每个开发分支的更改合并回主干。这就是我感到困惑的地方。我读过你可以简单地将每个分支合并到主干中,一次一个(在合并下一个分支之前提交每个分支的更改),因为它们都具有相同的祖先,而 Tortoise 足够聪明,知道应该更改什么。所以:
b1 -> merge to trunk -> commit trunk (now trunk has b1 changes)
b2 -> merge to trunk -> commit trunk (now trunk has b1 and b2 changes)
b3 -> merge to trunk -> commit trunk (now trunk has b1, b2, and b3 changes)
我还读到您应该将 dev 分支更改合并到其他 dev 分支中,然后合并到主干中,这样就不会出现覆盖问题(我认为乌龟足够聪明,可以避免)。所以:
b3 -> merge to b2 -> commit b2 (now b2 has b3 changes)
b2 -> merge to b1 -> commit b1 (now b1 and b2 and b3 changes)
b1 -> merge to trunk -> commit trunk (now trunk has b1, b2, and b3 changes)
请告知一种方法是否比另一种更好,或者一种方法是否有缺陷。我担心的是,如果我从一个分支合并更改,然后从另一个分支合并更改,我将撤消第一次合并操作中的更改或导致元数据出现问题。
我正在使用 TortoiseSVN 版本 1.8.8,构建 25755 和 Subversion 1.8.10。
谢谢!
【问题讨论】:
-
无论您遵循哪种工作流程,您都不必担心撤消更改。 Subversion 将标记合并冲突,您可以在提交更改之前查看更改。您始终可以还原对工作副本的任何操作,包括合并操作。它仅在您提交更改时记录。也就是说,您绝对可以通过使用适当的工作流程来避免合并困难。有关更多信息,请参阅我的答案。
标签: svn merge tortoisesvn