Perforce:如何整合多个分支机构?

hfs*_*hfs 5 perforce branch branching-and-merging

我在Perforce存储库中有以下分支情况:主线"主干"和两个发布分支"1.0"和"1.1".具有客户特定变化的分支"客户"已经从1.0分支分支出来.现在,客户希望转向1.1版.如何将1.1分支合并到客户分支?客户特定的更改应保持在1.1的"顶部".

这是一个受影响文件的图表:

1.1                      -(1)---(2)---(3)
                        /           \     \
                       /             \     \
trunk   100--(101)-(102)--103---104---105---106---107
           \
            \
1.0          ---1-----2--...
                 \
                  \
customer           ---1-----2----*3*
Run Code Online (Sandbox Code Playgroud)

我正在查看的文件的当前版本是客户分支上的修订版3.

如果我选择将分支"1.1"与目标"客户"集成,我会期望找到两者的共同祖先(主线上的修订版100),并且从那里导致1.1分支的尖端的所有修订被合并(那些在括号内).

相反,Perforce仅提供合并1.1分支的修订版1到3,但由于它错过了之前在主线上发生的必要更改而失败.

如何在不必手动查看每个文件并选择要合并的修订版的情况下说服Perforce执行此操作?也许分支策略不合适?我还该怎么办?

Pet*_* G. 0

为了使集成变得容易,我将创建一个特定的分支 trunk_to_custer 和 1.1_to_customer,然后发出:

cd customer-workspace
p4 integ -b trunk_to_customer @change-number-at-which-1.1-was-branched
p4 resolve
Run Code Online (Sandbox Code Playgroud)

也许中间提交在这里,然后

p4 integ -b 1.1_to_customer 
p4 resolve
p4 submit
Run Code Online (Sandbox Code Playgroud)