1

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

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

编辑以获得更多解释:

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

4 回答 4

5

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

于 2009-11-10T19:49:54.757 回答
3
  1. 制作一份工作副本trunk
  2. svn merge -r W:X svn://branchA workingCopy
  3. svn merge -r Y:Z svn://branchB workingCopy

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

于 2009-11-10T19:14:08.130 回答
1

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

建议你仔细阅读SVN 书中关于分支和合并的章节。

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

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

于 2009-11-10T19:16:30.490 回答
-12

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

于 2009-11-10T19:08:05.427 回答