0

我们在 SVN 中有不同的分支,并在分支之间进行 svn 合并。每个分支几乎都相互关联,因为我们的代码是增量的。假设如果一次大约有 5 个分支(分支 1 、分支 2 等....),并且分支 X 在某个时间线合并到分支 Y 中,并且两个分支也都有自己的代码开发:

  • 分支 1 = 代码库 A(来自生产中的先前分支)
  • 分支 2 = 代码库 A + 它自己对代码库 A 的更改

现在,如果分支 3 也具有分支 1 的代码库,并且有自己的更改,即(代码库 A + 分支 1 更改 + 分支 3 更改)。分支 4(从分支 1 创建并且也有自己的更改)

  • A) 现在我如何将分支 2 合并到分支 3 以避免代码冗余和合并问题。**
  • B)另外,我想将分支 3 合并到分支 4 并保持分支 3 的更改。

现在,我特别面临删除同一文件中的代码和重复代码的问题。

面临的问题

有时,未处于冲突状态的文件会在文件中两次获取代码内容。并且

分公司3、分公司4的案例

在分支 3 中删除的代码在分支 4 中以某种方式再次可见,尽管合并是通过正向方法完成的 (branch1 --> branch2--> branch3 --> branch4)

我们尝试每次都保持相同的基础,但仍然遇到上述问题。我想了解在上述情况下应该如何进行合并。请提出您的意见。任何具有 svn merge 实用知识的人都会非常有帮助。

PS:我已经研究过合并最佳实践,但现在有了清晰的方法。我知道合并的基本方法,但从未在这样的复杂场景中合并

4

2 回答 2

0

你需要考虑你的分支策略。好像有点复杂。四个分支代表什么?它们是您要添加的特定功能吗?为什么要周期性合并?

让我们指定一个分支(分支 1)作为您的集成流。这是所有工作的地方。这是释放的地方。分支 2、分支 3 和分支 4 将是功能分支。添加功能的分支。在这种情况下,所有合并都将在分支 1 和其他分支之间进行。您不会在任何其他分支之间合并代码。

分支被比作生孩子。如果你有一个,你最好准备好照顾它。你必须观察它并维护它。

这是我尽量减少分支的原因之一。我们所有的工作都是在主干上完成的,我在发布时间附近进行分支,以允许一些开发人员完成即将发布的版本,而其他开发人员则致力于未来的修订。发布完成后,我们对该分支说“au revoir”(除非我们需要修补)。

偶尔,我会做一个功能分支。这比较棘手,因为我们必须使该功能分支与主干保持同步。这并不难,但开发人员必须记住定期这样做。否则,我们都在主干上工作。

其他站点一直使用功能分支,但必须记住将其集成分支(或主干)合并到这些分支中(以保持功能分支最新),并小心将功能分支合并回主干(使用不同的合并算法)。

于 2014-07-08T18:35:19.577 回答
0
  1. 您尝试实施“每个任务的分支”工作流程。没关系,但选择了工具 - 不合适
  2. Subversion 中的所有分支都具有相同的权限 - 您可以将任何分支与任何方向的任何分支合并(如果确实需要)
  3. SVN 1.8+ 会给你一些好处
  4. 对于长期分支、密集分支和主动使用跨分支合并(头痛最小),您选择了相当糟糕的 SCM - 任何将合并作为“一等公民”的 VCS 都将是更好和更有用的选择:似乎有 SVN 背景成为水银
于 2014-07-08T20:19:43.113 回答