【问题标题】:Subversion - nested branchesSubversion - 嵌套分支
【发布时间】:2012-01-09 16:53:54
【问题描述】:

我从主干创建了一个分支 Feature1。然后我从 Feature1 创建了一个分支 Feature1.1。 像这样:

                      +--------- Feature1.1
                     /
              +-----+----------- Feature1
             /
 /----------+--------------------------------------------- trunk

我现在已经完成了 Feature1 的工作,但是我必须在 Feature1.1 上做更多的编码,所以我将 Feature1 与 trunk 合并,如下所示:

  1. 合并:主干 -> Feature1
  2. 已合并:Feature1 -> Feature1.1
  3. 已合并:功能 1 -> 主干(重新集成)

然后我的计划是合并“Trunk -> Feature1.1”并继续在 Feature1.1 中工作并修复主干中的 Feature1 错误。但是当我尝试合并“Trunk -> Feature1.1”时,看起来项目中的所有文件都标有冲突。

我是否必须手动合并文件(约 100 个文件...),或者有谁知道如何解决这个问题?

一种解决方案可能是将 Feature1.1 中的文件合并到 Feature1(如果可能的话),然后从 Feature1 分支执行另一个trunk-reintegrate-merge。请参阅 SVN 书中的 Keeping a Reintegrated Branch Alive 章节。

【问题讨论】:

  • 不确定它是否会回答您的问题,但如果您使用的是 git,它非常简单。您只需针对新主干重新设置分支 Feature1.1。一令。我不认为在 SVN 中这很容易,你可以使用“git svn”桥,但是你很难将它同步回 svn。 git 是如何做到的 - 它在 Feature1.1 中在新基础(你的情况下是最新的主干)之上重新生成差异。
  • 可能已经跑题了,但是...你为什么不切换到不同的 SCM?
  • @pablo :走开 - SVN 非常适合它的用途。您选择的 SCM 不一定是每个人的最佳选择。
  • @JoshM。是的,svn 太棒了,以至于每个主要的 oss 项目都放弃了它……早在 2008 年!

标签: svn merge nested branch


【解决方案1】:

我认为它应该开箱即用。如果看起来它在您的设置上不起作用,并且由于您知道在您的方案的第 3 步达到修订之前,在主干上完成的每项更改(我们将称之为 TheRev ),您可以使用 --record-only 标志合并从主干到 Feature1.1 直到 TheRev 的所有修订。它只会将这些修订标记为在 Feature1.1 中合并。

你应该可以照常工作了。

【讨论】:

  • 非常感谢,它成功了。我不确定主干和分支是否需要相互同步才能仅记录工作。你为我解决了这个问题。
猜你喜欢
  • 2010-11-25
  • 2021-01-18
  • 2016-05-29
  • 2011-04-24
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
相关资源
最近更新 更多