我正在使用Subversion 1.7.x,我正在分支上进行开发。
我不时从 trunk 合并以保持分支机构的最新状态
但是,在最新的合并期间,传入的代码虽然在 trunk 中完全正确,但不会在分支中编译。
这是预料之中的,因为 trunk 中更改的代码已部分在分支之前的几个修订版中重写。
请注意,合并操作干净利落,没有冲突
为了清楚起见,当我说 merge 时,我指的是使用来自另一个分支的代码修改工作副本的操作,不涉及提交,即仅svn merge [source] [dest]
。
由于分支最终将重新集成到 trunk ,我想我有两种选择:
如果我在提交之前编辑合并的代码(即我使用#1),重新集成分支时这些更改是否会丢失?
答案 0 :(得分:1)
简短回答是:不,改变不会丢失。
更多细节。
重新整合合并与“常规”同步合并不同,因为它将分支复制到主干,因此两者变得相同[1]。它可以表示为“将分支和主干之间的差异应用于主干(wc)”。当然,重新整合合并实际上应该是重新融合。 Subversion 1.8不知何故猜测,早期版本在合并期间需要--reintegrate
参数。
更新
[1]实际上,我做了几次测试,发现只有当你合并到工作副本更新到上次同步修订时,结果才会相同。例如,如果您将trunk 1-100同步到分支,那么在trunk 10中创建更多其他修订,然后将分支重新集成到trunk中 - 这可能是差异。
我个人更喜欢同步分支到trunk中的最新版本,重新整合然后比较二进制身份的文件夹。以防万一:)