从 Subversion feature branch requires changes from another feature branch
提前
我有两个功能分支:“FeatureA”和“FeatureB”。 FeatureA已完成,但尚未合并到主干,因为尚未确认它是否应该在下一个版本中进行。
FeatureB正在进行中,事实证明需要对dbml进行一些实际应用于FeatureA的更改。
我有几个选项,其中一个是仅合并dbml和相关文件。我知道最佳实践是从工作副本根合并/更新/提交等,但如果我要继续进行会导致什么问题呢?
答案 0 :(得分:1)
你可以将所有修订从FeatureB合并到你想要的FeatureA分支(好主意注意合并的修订版,因为subversion不会为你做这些 - svnmerge.py工具会这样做,但我宁愿保留一条记录我)。然后撤消/删除您不想要的更改(例如,正如您在前面的问题中所述,是修订的一部分)。
我想这样说:“稍后,在FeatureA和FeatureB与主干合并期间,如果您撤消的更改独立于FeatureB分支中的其他更改,则不会发生冲突。”但我不确定这是否属实。也就是说,如果这些更改合并到主干中,如果FeatureA和FeatureB发生共同变化,是否存在冲突/双重更改?
解决方法是采取安全的方法并自己进行困难的会计,以便在后续的主干上进行合并时不会重复任何更改。
简化的一种方法是在代码中使用标志来打开或关闭FeatureA。这样,FeatureA就已经可以与trunk合并了。
答案 1 :(得分:0)
我发现记住svn中的合并用三个参数描述是有用的。 您可以将将rev X转换为rev Y的更改,并将这些更改应用于rev Z. 我认为这与您对使用工作副本的说法相冲突。
因此,一种方法是在功能A分支中找到您对dbml所做的更改(由起始修订版和完成修订版标识),并将这些更改应用于功能B分支。
答案 2 :(得分:0)
我认为你正在研究“子树mergeinfo”的问题。专家say this is best avoided。但性能也是一个问题,因为在大型分支的根部运行合并可能需要很长时间。为了避免这些性能问题,我已经完成了子树合并,并且可以确认生成的子树mergeinfo确实会导致一些问题。所以你应该尽可能避免它。
答案 3 :(得分:0)
最后,我通过与我的经理们达成一致来解决这个问题,如果我遇到这个问题,我只需将这两个功能构建到一个分支中,它们就必须聚集在一起进行测试。
答案 4 :(得分:-1)
由于版本1.6 Subversion跟踪合并,因此您将不会有任何进一步的问题。