假设您有以下设置:
//depot/source/sourcefile.cpp
//depot/build/product.exe
早上 8 点,您签入 sourcefile.cpp(现在是修订版 2,在更改列表 100 中)。构建机器开始构建,早上 9 点,构建机器检查 product.exe,修订列表 104 中的修订版 2。酷。遗憾的是,您可能没有注意到,但在 8 点 15 分,有人在更改列表 103 中签入了 sourcefile.cpp 的修订版 3。
你有什么选择?如果只记录源 (100) 和产品 (104) 的更改列表,则可以将整个项目同步到源,然后进一步同步更改列表 104 的内容。这个过程有点手动 - 你必须记录两个数字并进行两步操作。
您可以制作标签,但遗憾的是,标签不允许多次修订,因此您实际上并不可行。
最后,在您签入修订版 104 后的某个时间点,您可以创建一个分支。这基本上是您感兴趣的修订的元数据副本,以便您将来可以一键同步。您可以锁定分支以防止更改。
p4 integ //depot/source/...@102 //depot/milestone1/source/...
p4 integ //depot/build/...@104 //depot/milestone1/build/...
令人讨厌的细节 - 您可以在 perforce 中配置文件以保存有限数量的修订 - 例如,您可能只需要 product.exe 的最后 16 个修订。(将文件类型更改为 +S16)。如果您(或其他人这样做),您的前两个过程最终将失败,因为修订已因修订过多而被删除。如果您使用分支,您的 product.exe 不会过期。