5

Subversion 功能分支提出需要从另一个功能分支进行更改

我有两个功能分支:“FeatureA”和“FeatureB”。FeatureA 已经完成,但没有合并到主干,因为它是否应该在下一个版本中得到确认尚未确定。

FeatureB正在进行中,结果表明需要对实际应用于 FeatureA 的 dbml 进行一些更改。

我有几个选项,其中之一是仅合并 dbml 和相关文件。我知道从工作副本根目录合并/更新/提交等是最佳实践,但如果我继续这样做会导致什么问题?

4

5 回答 5

1

您可以将 FeatureB 中的所有修订合并到您想要的 FeatureA 分支(注意合并的修订,因为 subversion 不会为您做到这一点 - svnmerge.py 工具会这样做,但我宁愿自己保留记录)。然后撤消/删除您不想要的更改(例如,正如您在前面的问题中所说,是修订的一部分)。

我想说的是:“稍后,在 FeatureA 和 FeatureB 与主干合并期间,如果您撤消的更改独立于 FeatureB 分支中的其他更改,则应该不会发生冲突。” 但我不确定这是否属实。也就是说,如果FeatureA和FeatureB有共同的变化,当这些变化合并到主干时,是否存在冲突/双重变化?

一种解决方法是采取一种安全的方法并自己进行困难的核算,以便以后在主干上执行合并时根本不会重复任何更改。

一种简化的方法是在代码中使用一个标志来打开或关闭 FeatureA。这样,FeatureA 就可以与主干合并。

于 2009-12-29T05:44:09.250 回答
0

我发现记住 svn 中的合并是用三个参数描述的,这很有用。您进行将 rev X 转换为 rev Y 的更改,并将这些更改应用于 rev Z。我认为这与您所说的使用工作副本相冲突。

因此,一种方法是在功能 A 分支中找到您对 dbml 所做的更改(由开始修订版和完成修订版标识),并将这些更改应用到功能 B 分支。

于 2010-01-10T12:43:23.930 回答
0

我认为您正在解决“子树合并信息”的问题。专家说这是最好避免的。但性能也是一个问题,因为在大分支的根目录运行合并可能需要很长时间。为了避免这些性能问题,我做了子树合并,并且可以确认生成的子树合并信息确实会导致一些问题。所以你应该尽可能避免它。

于 2010-01-25T22:00:35.520 回答
0

最后,我通过与我的经理达成一致解决了这个问题,即如果我遇到这个问题,我将简单地将这两个功能构建到一个分支中,并且它们必须放在一起并一起进行测试。

于 2010-11-02T09:37:12.217 回答
-1

由于版本 1.6 Subversion 跟踪合并,因此您不会有任何进一步的问题。

于 2010-01-10T11:18:44.820 回答