【问题标题】:Reintegrate to the branch (not the trunk) in Subversion (SVN)在 Subversion (SVN) 中重新集成到分支(不是主干)
【发布时间】:2011-11-13 08:22:47
【问题描述】:

我知道 Subversion (SVN) 1.6 中有 --reintegrate 选项可以将功能分支合并回主干。

我的工作流程有点复杂:

我们有功能分支 - 我们经常将主干合并到它们。但我们不会立即将它们放回后备箱。相反,我们从主干创建一个发布分支,并将功能分支合并到发布分支。在这一点上,我们遇到了很多树冲突(因为特性分支和主干中都存在很多变化)。

选项--reintegrate 在这种情况下必须有所帮助,但看起来--reintegrate 在合并到主干以外的分支时不起作用。这是真的吗?

【问题讨论】:

标签: svn svn-reintegrate


【解决方案1】:

告诉我你不能在除trunk 之外的任何分支上使用--reintegrate 选项。 Subversion 在命名或分支放置方面没有任何 标准,因此trunk 没有什么特别之处。对于 Subversion,branchestrunktags 只是目录。这些目录对我们来说是特别的,因为我们这么说过。

--reintegrate 选项与以下事实有关:如果我从分支 A 合并到分支 B,然后尝试从分支 合并回来B 到分支 A,我可能正在尝试将内容合并回分支 A,该分支最初位于分支 A 中。 --reintegrate 选项让 Subversion 知道我正在反转我的合并方向,并且不考虑分支 B 中实际上是从分支 A 合并的结果的内容.

在任何实际跟踪合并更改的版本控制系统中,重新集成都是一个问题。无论如何,--reintegrate 没有理由必须涉及一个名为trunk 的分支。否则,没有真正需要该选项。 Subversion 所要做的就是看到你正在合并到一个名为 trunk 的分支中,并意识到它可能是一个重新集成。

【讨论】:

  • 是的,我也有同样的印象——不能限制重新整合,但我从未见过人们重新整合到主干以外的地方,当我重新整合到分支时,我得到了这个:svn: '/ svn/!svn/bc/364751//releases/' path not found
  • 看来重新整合不是我需要的。我需要合并 2 个功能分支以发布分支(主干副本)。那么我如何让 svn 知道不考虑分支 R 中实际上是从分支 T 合并的结果并摆脱所有这些树冲突的东西?
  • 所以你从 Trunk->Feature_branch 开始,然后是 Trunk->Release_branch。 Trunk 中的更改合并到 Feature_branch。您还提交对 Feature_branch 的更改。最后,您要将 Feature_branch 合并到 Release_branch。我不能 100% 确定这会起作用,因为这两个分支没有直接关系。 svn的合并还是有点弱。使用--ignore-ancestory 可能会更好。订阅Subversion list 并在那里询问。该列表专门研究 Subversion 问题,并且可能比此处提供的专业知识更多。
猜你喜欢
  • 2012-03-30
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多