目前尚不清楚您已经拥有多少自动化,或者您寻求多少自动化。 Perforce 本身提供了跟踪集成和分支的工具,但如果您想做自动构建和标记等事情,则需要从源代码控制领域之外进入发布管理/自动化领域。
我假设你有两个分支:
(B) //depot/yourcode/rel/...
(C) //depot/yourcode/dev/...
在这些分支中,代码布局大致相似,尽管 dev 将比 rel 更新(并且可能更错误)。 (你的文字没有解释你用trunk做什么,所以我忽略了它。)
假设您正在开发中,并且想要发布代码。您使用要发布的文件创建一个标签(我们称之为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 为您提供了设置分支和发布以满足您的目标所需的工具,这些工具可以轻松编写脚本,但不能直接执行自动化发布。