重新整合分支与合并一系列修订

zac*_*ary 32 svn

在subversion我现在做了一个分支我想把它合并回trunk.我应该使用哪个选项?

重新整合分支

要么

合并一系列修订版

我使用Merge进行了一系列修订,但是我遇到了各种树冲突错误.知道这两者之间有什么区别吗?

Pow*_*ord 36

使用分支时,应定期将主干的修订范围合并到分支中,以使分支保持同步.如果您没有将任何版本号传递给svn merge并且您的svn服务器版本是1.5或更新版本,它将跟踪您之前完成的合并并自动合并仅更新的版本.

分支完成后,您应该最后一次将更改合并到其中,然后其重新集成回主干.


Cri*_*ll 6

以下是我通常遵循的合并步骤.

1.

svn log -v --stop-on-copy http:// mysvnrepo/mybranch

这将在您第一次创建分支时为您提供repo修订.说它是AAAA.

2.

svn log -v -rAAAA:HEAD http:// myrepo/trunk

这将为您提供在取出分支后在主干中所做的更改.这不是必要的,但我用它来了解我目前应该合并的内容.

3.

在步骤2中.报告主干更改,转到分支工作区并运行

svn merge --dry-run -rAAAA:HEAD http:// myrepo/trunk.

这将报告自分支到mybranch以来在trunk中所做的所有更改 - 查看并重新运行命令而不使用--dry-run选项来执行实际合并.

4.

使用相关注释在合并后提交分支工作区.(例如,"从主干版本AAAA到XXXX的合并更改" - 其中XXXX是当前的HEAD版本)这会将HEAD称为版本YYYY.

5.

在trunk行李箱中,键入

svn merge --dry-run -rAAAA:HEAD http:// myrepo/branch.

这应该报告在创建之前在分支中所做的更改.查看报告以验证正在合并/冲突的内容等,然后运行不带--dry-run选项的命令,以实际执行合并.

6.

如果手动解决冲突,运行svn解析告诉repo你的冲突现在都已解决,然后用相关消息执行提交,例如"从mybranch合并到trunk - 从修订AAAA到YYYY包含的更改".这有助于下次运行日志,然后您可以在此时简单地执行从YYYY到HEAD的下一次合并.