【发布时间】:2012-09-20 14:58:35
【问题描述】:
在 svn 的书 (http://svnbook.red-bean.com/en/1.7/svn.branchmerge.commonpatterns.html) 中,在 Common Branching Patterns 部分中,它说:
主干被复制到“发布”分支。当团队认为 软件已准备好发布(例如,1.0 版本),/trunk 可能是 复制到 /branches/1.0。
团队继续并行工作。一个团队开始严格测试 发布分支,而另一个团队继续新工作(例如,对于 2.0 版)在 /trunk 上。如果在任一位置发现错误, 根据需要来回移植修复程序。然而,在某些时候, 即使那个过程停止了。分支被“冻结”以进行最终测试 就在发布之前。
(强调我的)。我假设维护分支与发布分支相同..? (在我们开发下一个版本时,我们需要让一位客户使用之前的版本)。
我很确定我不应该使用--reintegrate,但我不太确定如何以不会弄乱未来合并的方式进行合并。我是否需要手动跟踪修订范围? ..或者颠覆会为我做这件事(我使用的是 1.7.6 版)。
[编辑:更多细节]
trunk> svn mkdir c
trunk> touch a.txt b.txt c\d.txt
trunk> svn add a.txt b.txt c\d.txt
trunk> svn ci -m "initial trunk"
...
Committed revision 9580.
trunk> svn copy .../trunk .../branches/branch1 -m "create maint branch"
Comitted revision 9581.
trunk> svn rm c\d.txt
trunk> svn ci -m "Fix bug-1."
Deleting c\d.txt
Committed revision 9582.
branch1> svn merge .../trunk
--- Merging r9581 through r9582 into '.':
D c\d.txt
--- Recording mergeinfo for merge of r9581 through r9582 into '.':
U .
branch1> svn ci -m "Merged fix for bug-1 from trunk."
Deleting c\d.txt
Committed revision 9583.
branch1> svn propget svn:mergeinfo .
/svntests/trunk:9581-9582
trunk> svn up
Updating '.':
At revision 9583.
[原问题]
trunk> svn merge .../branches/branch1
--- Merging r9581 through r9583 into '.':
C c\d.txt
--- Recording mergeinfo for merge of r9581 through r9583 into '.':
U .
Summary of conflicts:
Tree conflicts: 1
[来自@JB Nizet 的修复]
trunk> svn merge -c 9583 --record-only .../branch1
--- Recording mergeinfo for merge of r9583 into '.':
U .
trunk> svn propget svn:mergeinfo .
/svntests/branches/branch1:9583
然后,来自维护分支的未来合并将起作用(正确更新主干上的合并信息)而不会产生冲突:
trunk> svn merge .../branch1
【问题讨论】: