【问题标题】:Problem in SVN merging branches into trunkSVN将分支合并到主干中的问题
【发布时间】:2010-12-15 04:30:27
【问题描述】:

我有一个树干 (A) 和两个分支 (B 和 C)。当我将 A 与 C 合并时,它可以,在我将 A 与 B 合并后,之前的 C 被覆盖,我的主干没有 C 的变化。

我想要的是合并后 A + B + C 进入主干。

编辑以获得更多解释:

  1. 在后备箱中,我有 3 个文件:“文件 1”、“文件 2”和“文件 3”;
  2. 我从主干创建一个分支作为“分支 1”;
  3. 我切换到“分支 1”,我将错误修复到“文件 1”文件并提交;
  4. 同时,另一个人从主干创建一个分支作为“分支 2”;
  5. 此人将另一个错误修复到“FILE 2”和“FILE 3”文件中并提交;
  6. “分支 2”获准发布,然后我将“分支 2”合并到“主干”(没问题);
  7. 第二天“Branch 1”获得批准,然后我将“Branch 1”合并到“trunk”,“trunk”失去了“Branch 2”的更改。

【问题讨论】:

  • 在你的解释中,#7,什么是“你的后备箱”?
  • @sbi 将“我的树干”修复为“树干”

标签: svn merge branch trunk


【解决方案1】:

假设您使用的是 Subversion 1.5 或更高版本,我认为您想将您的分支“重新集成”回主干,请参阅http://blog.red-bean.com/sussman/?p=92

【讨论】:

    【解决方案2】:
    1. 制作trunk 的工作副本
    2. svn merge -r W:X svn://branchA workingCopy
    3. svn merge -r Y:Z svn://branchB workingCopy

    我认为这将为您提供您想要的,即主干加上任一分支所做的任何更改。但是,您将不得不处理冲突。

    【讨论】:

    • Reintegrate 是@Even 所说的解决方案。
    【解决方案3】:

    您的术语不清楚。当您说“将 A 与 B 合并”时,这是否意味着您将 A 合并到 B 或 B 合并到 A?你能解释一下你做了什么来创建分支,以及你是如何尝试合并的吗?此外,对于合并,您使用的 SVN 版本也很重要。

    我建议你仔细阅读SVN书中的chapter on branching and merging

    基本上,当您拥有一个功能分支(您似乎拥有)时,您会反复将分支合并到其中。 SVN 然后记录您合并了哪些修订,并且不会再次合并它们。完成分支后,将其重新集成到主干中并关闭它。

    所有这些都在您的磁盘上完成,一次一个分支,在每个分支之后解决潜在的冲突,并检查每个步骤。 (如果由于某种原因您需要在一次签入中将更改应用到主干,您可以将您的分支合并到主干上的一个新分支中,然后在完成后将该分支合并到主干中。)

    【讨论】:

    • 我需要将 B 合并到 A 中,将 C 合并到 A 中。
    【解决方案4】:

    您希望将合并应用到您的工作区,而不是存储库。 或者,您可以使用 cvs,它以比 svn 更好的方式处理分支。

    【讨论】:

    • “CVS 处理分支的方式比 SVN 好得多” 你一定是在拉我们的集体腿。该陈述值得-10。不幸的是,我只能给你一个-1。
    • 我会帮忙的。此外,原始海报应该使用树木。与 CVS 或 Subversion 相比,树处理分支的方式要好得多。
    • 我之所以投反对票,不仅仅是因为他对如何“将合并应用到工作区,而不是存储库”有一个很好的观点。
    • 我想我们都否认 SVN 的标签功能也有效,对吧?
    猜你喜欢
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2015-09-15
    相关资源
    最近更新 更多