在这里,我们已经有一个SVN库有一个箱子和一个分支对于发展一个新的版本。

该处即将准备释放所以现在我决定重新融入社会的分支回到主干。显然有一些冲突。包括相当多的树冲突的文件,删除了在后备箱。

我解决所有的冲突的幸福足够和致力的主干。

问题是,我们然后做一些小的变化分支,所以我去重新融入社会的支再次以及所有同样的树冲突的发生。解决这些问题不是一个问题,但也有相当多的,它需要一段时间来检查和解决他们所有的手,我不想要必须通过相同的决议进程的每一次我做出改变和重返社会。我曾预计SVN认识到,该处已经重返社会的一次和唯一合并从最后重返社会曾经发生。

当我打开了修订的图表,显示了干和观点,即分割断,但它并不显示的合并。应该吗?

服务器:WinServer2003(R2sp2),VisualSVNServer(1.7.2).客户:WindowsXP(sp3),我一直在使用如今(1.6.5)来做的这一切,但我也已经命令行客户安装。

我做的合并,从而确保我们的干达日期,并使用如今做一个合并和我选择的"融入社会的一个分支"时提出的选择对话。我设定合并的深入到"工作的副本"

我处理这种情况下不正确?我应该做什么不同?

(我们也许有我们的存储库的布局是错误的。我们支从树干,使所有的改变对于新的释放在分支机构,现在释放是因为我们是合并分支回到主干。也许,这是错误的做法,我已经阅读有关的一些人这样做的其他方式,使所有的变化的主干,并且使该分支只有当你准备用于释放及支成为支持发布版本)

有帮助吗?

解决方案

以下是本章 SVN书籍:

  

在Subversion 1.5中,一旦从分支到主干完成了--reintegrate合并,分支就不再可用于进一步的工作。它无法正确吸收新的行李箱更换,也无法再次正确地重新集成到行李箱。因此,如果您想继续使用功能分支,我们建议您销毁它,然后从主干中重新创建

其他提示

在这种情况下我不会合并代码的分支,树干直到你已经完成的发展。

合并从主干支,以确保你的分支是最新的,与任何修复应用的主干。进行这一活动的周期性,以确保开发分包含所有修正。然后在在哪一点发展成为生活的发布做的合并支后备箱作为一个关的活动。

我的回答使得一些假设包括:

  • 你有活干,dev 树枝
  • 你只有一个生活 版本(即不维护遗产 versions)

希望这有所帮助。

现在实际上可以进行重复的双向合并

提醒一句。这个答案解释了它是如何完成的,但如果你错过了任何一步,你会感到抱歉。例如,--reintegrate merge必须完全无关紧要(所有差异已在分支中解决),否则当您继续在分支中工作时,您将无声地错过获取--reintegrate合并步骤中所做的更改。另一种方法是在--reintegrate之后每次删除并重新创建分支。


至少在svn 1.6及更高版本中,您可以重复进行双向合并。您可以通过svn merge多次将'main'分支合并到子分支,但每次将分支合并回main时,您必须提供选项

--reintegrate 正如其他答案所述。

您还需要做的是在第二个手动步骤(使用该分支检出并更新)中使用命令<告诉您的分支机构将其集成 / p>

svn merge --record-only -c 391 ^/calc/trunk

391此处表示您刚刚在calc / trunk中执行的--reintegrate分支提交中的合并提交编号。

如果您错过了它,它可能仍然有效,或者您可能需要重新解决下次合并时已解决的合并冲突。在仅记录步骤之后,您的分支机构已准备好进行进一步的工作或合并。 这很愚蠢(特别是如果你被像我这样的 Git 所破坏,那里的东西才能正常工作),但是如果按照这种仪式去做它就可以了,并且两个分支总是对新的提交开放。


整个内容记录在SVN书中的重新整合两次

  

此合并使用引入的cherry-picking合并语法   在名为&#8220; Cherrypicking&#8221;的部分中。继续跑步   例如,来自“#8220;重新整合分支&#8221;”的部分,其中   修订版X是修订版391:

$ cd my-calc-branch $ svn update Updating '.': Updated to revision
393. $ svn merge --record-only -c 391 ^/calc/trunk
--- Recording mergeinfo for merge of r391 into '.':  U   . $ svn commit -m "Block revision 391 from being merged into my-calc-branch."
 Sending        .

 Committed revision 394.
  

现在您的分支已准备好再次从主干中吸收更改。在您的分支再次同步到主干之后,您甚至可以再次重新集成分支。如有必要,您可以执行另一个仅记录合并以使分支保持活动状态。冲洗并重复。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top