【问题标题】:What is the best way to merge specific changes in several branches and trunk?合并多个分支和主干中的特定更改的最佳方法是什么?
【发布时间】:2011-05-14 22:29:35
【问题描述】:

我长期使用 SVN/CVS,就像我存储代码的地方一样。但现在我到了需要“最好的方法”的地步。

我们有几个分支机构。
例如:

  • Release1(已发货),
  • Release2(未完成,包含新功能),
  • Fix1(包含对Release1 的错误修复,将在客户测试后发货),
  • Fix2/trunktrunk 是我们当前的开发状态,Fix2)。

现在我们来解决我的问题。

我不能说Release 2 是否在Fix1Fix2 之前发货,我现在有一个Hotfix 用于Release1。只有几个文件,但很紧急。

现在在所有分支中获取更改的最佳方法是什么?
自动合并还将合并特定于分支的差异。手动合并是最好的方法吗?
必须有这样的方法:我用 ID“abc”标记我的更改,并说只合并所有分支中 abc 的更改。

顺便说一句。我正在使用带有颠覆性的 Eclipse。也许eclipse之外的工具会更好!?

【问题讨论】:

  • 也许stackoverflow.com/questions/1645409/…可以开始帮忙
  • 从一个分支合并到另一个分支不是问题。问题是我只想合并一些更改。考虑以下情况:您有一个旧版本的软件,并将其分成 2 个分支,供 2 个不同的客户使用。现在您对旧版本进行修复(因为 customer3 使用它)并且您只想将新更改合并到您的 2 个分支,因为分支上有不同的功能.. 很难用英语描述:D

标签: eclipse svn merge branch


【解决方案1】:

我使用 Eclipse 的 Subclipse 插件。您也可以使用 svn 命令行来执行此操作。如果您的修复被隔离到单个修订号,那么您可以只将该修订合并到主干(或任何其他分支)。

  • branch1(修订版 103)-hotfix
  • 主干(修订版 100)

使用 Subclipse,您可以右键单击文件,然后选择“团队”->“合并”。选择“合并一系列修订”或“合并两个不同的树”选项,然后提供源 url 和修订以合并到目标树。

从命令行...假设您当前的工作目录是主干:

svn merge -r 103:103 http://svn/branches/branch1

您可能无法合并到多个分支,这可能会更好,因为您要小心合并过程。

【讨论】:

  • 哦,你应该验证合并结果而不是提交。 Subclipse 还允许您在实际合并完成之前查看合并过程的模拟结果。
猜你喜欢
  • 2012-06-02
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多