Perforce Howto?在分支之间同步/合并文件

Sri*_*ddi 5 perforce

(A) ------- (B) ----------- (C)
 |           |               |
Trunk  ReleaseBranch   DeveloperBranch
Run Code Online (Sandbox Code Playgroud)

开发人员在C分支中工作并签入所有文件.然后在C分支中标记修改的文件.部署的二进制文件是从B分支构建并标记的.目前这一切都是手动的.

在Perforce中,有没有一种简单的方法来实现这一点,比如根据标签合并分支等?

Com*_*ger 13

目前还不清楚您已经拥有多少自动化,或者您寻求多少自动化.Perforce本身提供了跟踪集成和分支的工具,但是如果您想要执行自动构建和标记之类的操作,则需要在源代码控制世界之外查看发布管理/自动化领域.

我假设你有两个分支:

(B) //depot/yourcode/rel/...
(C) //depot/yourcode/dev/...
Run Code Online (Sandbox Code Playgroud)

在这些分支内部,代码布局大致相似,尽管dev会比rel更新(并且可能是buggier).(你的文字没有解释你用干线做什么,所以我忽略它.)

假设您在dev中开发并且想要发布代码.您可以使用MYCODE_DEV.1.0要发布的文件创建标签(让我们称之为).您可以将其集成到rel中:

p4 integrate //depot/yourcode/dev/...@MYCODE_DEV.1.0 //depot/yourcode/rel/...
Run Code Online (Sandbox Code Playgroud)

它从MYCODE_DEV.1.0标签集成到发布分支.Perforce会跟踪您合并的文件修订以及未合并的文件修订,因此它只会合并新代码.如果您对不在dev中的rel进行了更改,则需要自动或手动解决更改.然后,您可以检查rel的更改,创建新标签,然后从那里发布.

(由于Perforce会跟踪您合并的内容,如果您尝试再次集成相同的标签,Perforce会礼貌地拒绝执行任何操作,但如果您认为自己了解得更好,则可以覆盖它.)

(如果您阅读了Perforce文档,您将找到对"分支规范"的引用,它允许您将命名分支声明为在集成命令中指定源分支和目标分支的简写.分支规范对于维护复杂的分支特别有用带有源文件的分支分散在多个目录中,但这里并没有真正为这个简单示例添加值.)

Perforce为您提供了设置分支和发布以实现目标所需的工具,这些工具可以轻松编写脚本,但不直接执行自动发布.