branch - Perforce:如何在多个分支机构之间进行集成?

标签 branch perforce branching-and-merging

我在Perforce存储库中遇到以下分支情况:有一个主线“trunk”和两个发行分支“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*

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

如果我选择将分支“1.1”与目标“客户”集成在一起,我希望可以找到两者的共同祖先(主线上的修订版100),并且从那里到1.1分支顶端的所有修订版都将合并(在括号内)。

取而代之的是,Perforce仅提供合并1.1分支的修订版1至3的操作,但失败了,因为它错过了之前在主线上进行的必要更改。

如何说服Perforce这样做而不必手动查看每个文件并选择要合并的修订版?也许分支策略不合适?我还应该怎么办?

最佳答案

为了使集成变得容易,我将创建一个特定的分支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

也许是介于两者之间的提交,然后
p4 integ -b 1.1_to_customer 
p4 resolve
p4 submit

关于branch - Perforce:如何在多个分支机构之间进行集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913365/

相关文章:

git - 不允许分支 merge 到另一个分支

Git/Perforce 排除规则 - 允许忽略同级文件是否存在?

android - 为什么 Android Studio 2.0 不支持 Perforce?

mercurial - 我可以将对多个 mercurial 子存​​储库的更改提交到一个新的命名分支吗?

mercurial - Mercurial 如何在内部 merge ?

Git:如何在不接触工作目录的情况下切换分支?

git - 事件分支数量的最佳范围是多少?

分支的 TFS 构建服务器构建?

version-control - Perforce 文件夹的服务器端复制/移动 - 无需本地同步文件

git - 无法将功能书签 merge 到 mercurial 中的主书签中