(A) ------- (B) ----------- (C)
| | |
Trunk ReleaseBranch DeveloperBranch
开发人员在C分支中工作并签入所有文件。然后在C分支中标记修改的文件。部署的二进制文件是从B分支构建的 并贴上标签。目前所有这些都是手动的。
在Perforce中,是否有一种简单的方法可以实现这一点,例如根据标签合并分支等?
答案 0 :(得分:13)
目前还不清楚您已经拥有多少自动化,或者您寻求的自动化程度。 Perforce本身提供了跟踪集成和分支的工具,但如果您想要执行自动构建和标记之类的操作,则需要在源代码控制世界之外查看发布管理/自动化世界。
我假设你有两个分支:
(B) //depot/yourcode/rel/...
(C) //depot/yourcode/dev/...
在这些分支内部,代码布局大致相似,尽管dev会比rel更新(并且可能是buggier)。 (你的文字没有解释你用干线做什么,所以我忽略它。)
假设你在dev中开发并想要发布代码。您可以使用要发布的文件创建标签(让我们称之为MYCODE_DEV.1.0
)。您可以使用以下内容将其集成到rel中:
p4 integrate //depot/yourcode/dev/...@MYCODE_DEV.1.0 //depot/yourcode/rel/...
从MYCODE_DEV.1.0
标签集成到发布分支。 Perforce会跟踪您合并的文件修订以及未合并的文件修订,因此它只会合并新代码。如果您对不在dev中的rel进行了更改,则需要自动或手动解决更改。然后,您可以检查rel的更改,创建新标签,然后从那里发布。
(由于Perforce会跟踪您合并的内容,如果您尝试再次集成相同的标签,Perforce将礼貌地拒绝执行任何操作,但如果您认为自己了解得更好,则可以覆盖它。)
(如果您阅读Perforce文档,您将找到对“分支规范”的引用,这使您可以将命名分支声明为在集成命令中指定源分支和目标分支的简写。分支规范特别有用用于维护复杂的分支,源文件分散在多个目录中,但这里并没有真正为这个简单的例子增加价值。)
Perforce为您提供了设置分支机构和发布以实现目标所需的工具,这些工具可以轻松编写脚本,但不直接执行自动发布。