我们使用SVN 1.6我们喜欢在分支之间执行代码合并,我们处于两难境地。
分支 A 存在
在分支 A
上进行代码更改的人 从分支 A
创建的分支 B 在分支 A 和 B
上进行代码更改的人 分支 A 同步代码合并到分支 B
一段时间
后 从分支 A
创建的分支 C 分支 A 继续将代码合并到分支 B(短时间)
在分支 C 上进行代码更改的人 人们停止分支 A 上的代码更改并"冻结"分支,不再有 ci
在分支 B
上进行代码更改的人 分支 C 同步代码合并到分支 B
在分支 B 和 C
上进行代码更改的人 经过一段时间现在的困境:我们喜欢将分支 B 合并到分支 C
因为分支 B 来自分支 A 而不是分支 C,所以我们无法应用 --reintegrate 选项从 B 到 C 的代码合并,因为它们没有共同的祖先
合并(没有 --reintegrate 选项)以防止 (C in B) 的"双重合并/重复代码"到分支 C 的风险最小的方法是什么?
通过简单的绘图可视化分支结构。我对你的问题的理解是:
C ---- C ---- C ----- C
/
A --- A ---- A --- A ???
B --- B ---- B --- B -- B ---- B ---- B
我会在 A 中集成 C 和 B。如果这不是一个选项,您可以通过 3 个步骤/3 个系列步骤来完成:
- 将 B 中所做的所有更改合并到 C 中,但不将从 A 合并的更改合并。这样做,直到您到达从 A 到 B 的最后一次合并(不在 C 中) 将
- 最后一个从 A 合并到 B 也合并到 C 中
- 合并在 B 上所做的其余更改(在 A 的最后一次合并之后),但省略从 C 包含的更改
我不完全清楚你的结构。如果是
C ---- C ---- C ----- C
/
A --- A ---- A --- A ???
B --- B ---- B --- B -- B ---- B ---- B
我会将最后的更改从 A 直接转换为 C。