【发布时间】:2010-12-18 00:17:58
【问题描述】:
在颠覆中,我现在创建了一个分支,我想将它合并回主干。我应该使用哪个选项?
重新整合一个分支
或
合并一个修订范围
我正在使用合并一系列修订,但我遇到了各种树冲突错误。知道这两者有什么区别吗?
【问题讨论】:
标签: svn
在颠覆中,我现在创建了一个分支,我想将它合并回主干。我应该使用哪个选项?
重新整合一个分支
或
合并一个修订范围
我正在使用合并一系列修订,但我遇到了各种树冲突错误。知道这两者有什么区别吗?
【问题讨论】:
标签: svn
使用分支时,您应该定期将主干的修订范围合并到分支到keep the branch in sync。如果您没有将任何版本号传递给 svn merge,并且您的 svn 服务器版本是 1.5 或更高版本,它将跟踪您之前完成的合并并仅自动合并较新的版本。
分支完成后,您应该最后一次将更改合并到其中,然后将reintegrate 重新合并到主干中。
【讨论】:
这是我通常遵循的合并步骤。
1.
svn log -v --stop-on-copy http://mysvnrepo/mybranch
这将在您首次创建分支时为您提供 repo 修订。 说是 AAAA。
2.
svn log -v -rAAAA:HEAD http://myrepo/trunk
这将为您提供在您取出分支后在主干中所做的更改。这不是必需的,但我用它来了解我目前应该合并的内容。
3.
万一步骤2。报告主干更改,转到分支工作区并运行
svn 合并 --dry-run -rAAAA:HEAD http://myrepo/trunk.
这将报告自从您分支到 mybranch 以来在主干中所做的所有更改 - 查看并重新运行不带 --dry-run 选项的命令以执行实际合并。
4.
使用相关评论提交合并后的分支工作区。 (例如,“从主干版本 AAAA 到 XXXX 的合并更改” - 其中 XXXX 是当前 HEAD 版本)这会调出 HEAD 来表示版本 YYYY。
5.
接下来在主干工作区中,键入
svn 合并 --dry-run -rAAAA:HEAD http://myrepo/branch.
这应该报告分支从创建到现在所做的更改。 查看报告以验证正在合并/冲突的内容等,然后运行不带 --dry-run 选项的命令以实际执行合并。
6.
手动解决冲突,运行 svn resolved 告诉 repo 你的冲突现在都解决了,然后使用相关消息执行提交,例如“从 mybranch 合并到主干 - 包括从修订版 AAAA 到YYYY”。这有助于您下次运行日志,然后您可以在该点简单地从 YYYY 到 HEAD 进行下一次合并。
【讨论】:
Tortoise SVN Merge vs Reintegrate 解释:
【讨论】: