SVN如何合并分支两次

SVN How to Merge Branch Twice

我们的组织正在清理和重组我们的代码库。我们正在考虑重组我们的 SVN (Subversion) 存储库以与我们的暂存和生产过程保持一致。

我们有一小组开发人员(3 人)正在对相同的代码文件进行更改 - 错误修复和功能。更改完成后,需要将它们部署到我们的暂存环境中以供产品所有者进行测试。一旦这些更改在暂存阶段获得批准,就需要将它们部署到生产环境中。我 运行 遇到的大多数标准功能/暂存/生产模型的问题是它假设测试将在功能分支上完成。由于我们有不同的测试时间表并且只有一个测试服务器,因此我们的暂存环境将随时测试多个功能。一旦一项功能获得批准,它就应该自行投入生产 - 而不是等待所有当前功能都经过测试并一起转移。

Repo Diagram

我想出的想法是运行作为与生产 t运行k(图中的#2)永久分开的分支。我们将我们的功能从暂存分支 (#4) 中分离出来,并将它们合并回暂存中,以便将它们部署到暂存环境中进行测试 (#8)。但是,一旦获得批准,我们将需要将相同的功能分支合并到 t运行k (#9) - 我不确定该怎么做或者是否可能。

如何将功能分支合并到暂存分支,然后再将同一功能分支(单独)合并到 t运行k?

更新:感谢 sdanil 的精彩建议。我认为这是正确的轨道,但我遇到了错误。

我通过一个简单的测试尝试了这个。我创建了一个新的 repo,并在 t运行k 中的第 1 行放置了一个带有“added in t运行k”的文本文件。我将其分支到一个暂存分支并修改了带有“added”的文本文件在第 2 行的“暂存”中。我提交了它,然后将暂存分支到 feature1。我在第 3 行用“添加的功能 1”修改了 feature1 中的文件并签入。从 Feature1 到暂存的合并完全按预期进行。从 Feature1 到 t运行k 的合并产生了毫无意义的冲突。它的行为就像第 2 行已经存在于 t运行k 中,并且想要将第 1-3 行复制为第 3-5 行。 Conflict Screen Shot.

将功能分支合并到暂存分支时,功能分支保持不变。更改提交到暂存分支,包括 svn:mergeinfo 属性 跟踪合并到暂存的内容。但是对于功能分支本身来说,它是一个完全只读的操作。

因此,没有什么可以阻止您将功能分支也合并到主干中。

你试过了吗?您遇到任何错误吗?