SVN将分支合并到主干中的问题

时间:2009-11-10 19:05:31

标签: svn merge branch trunk

我有一个主干(A)和两个分支(B和C)。当我将A与C合并为OK时,在我将A与B合并之后,先前的C覆盖并且我的主干没有C更改。

合并后我想要的是A + B + C进入后备箱。

编辑以获得更多解释:

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

  1. 制作trunk
  2. 的工作副本
  3. svn merge -r W:X svn://branchA workingCopy
  4. svn merge -r Y:Z svn://branchB workingCopy
  5. 我认为这会给你你想要的东西,这是主干以及任何一个分支所做的任何改变。但是,你必须处理冲突。

答案 2 :(得分:1)

您的术语不明确。当你说“将A与B合并”时,是否意味着你将A合并为B或B合并为A?你能解释一下你创建分支的确切内容,以及你是如何尝试合并的吗?此外,为了合并它,重要的是你使用的SVN版本。

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

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

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

答案 3 :(得分:-12)

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