0

我正在使用 Subversion 1.7.x,并且正在分支上进行开发。

我不时从主干合并以使分支保持最新。
然而,在最近的合并期间,传入的代码虽然在trunk中完全正确,但在branch中却没有编译。
这是意料之中的,因为主干中更改的代码在几个修订版之前已在分支中部分重写。

请注意,合并操作干净地完成,没有冲突。
为了清楚起见,当我说合并时,我的意思是使用来自另一个分支的代码修改工作副本的操作,不涉及提交,即只是svn merge [source] [dest].

由于该分支最终将重新集成到主干,我想我有两种选择:

  1. 在提交合并代码之前修复编译错误;
  2. 从主干合并;提交(未经编辑的合并代码);编辑代码以修复编译问题;再次提交(即随后修复编译问题,执行新的单独提交)。

如果我在提交之前编辑合并的代码(即我使用#1),重新集成分支时这些更改会丢失吗?

4

1 回答 1

1

简短的回答是:不,更改不会丢失。

更多细节。
重新集成合并不同于“常规”同步合并,因为它将分支复制到主干,因此两者变得相同[1]。它可以表示为“将分支和主干之间的差异应用到主干(wc)”。当然重新整合合并实际上应该是重新整合合并。Subversion 1.8 以某种方式猜测,早期版本--reintegrate在合并期间需要参数。

更新:

[1] 实际上,我进行了几次测试,发现只有合并到更新到上次同步修订的工作副本时,结果才会相同。例如,如果您将主干 1-100 同步到分支,然后在主干 10 中创建更多附加修订,然后将分支重新集成到主干 - 这可能会有所不同。

我个人更喜欢同步分支而不是主干中的最新版本,重新集成然后比较文件夹的二进制身份。以防万一 :)

于 2015-07-06T16:16:25.387 回答