听起来你已经找到了一个适合你的解决方案,但FWIW以下是我要做的:
0)制作BranchSec,因为这使下一部分更容易:
p4 --field "View=//prod/mainline/... //prod/beta/..." branch -o prod-main-beta | p4 branch -i
1) 忽略机器人犯下的错误(我假设你只想把这些事情放在一边):
p4 -Ztag -F @=%change% ichanges -u dummy_user -b prod-main-beta | p4 -x - integ -b prod-main-beta
p4 resolve -ay
p4 submit -d "Begone, robo-cruft!"
2) 做“真正的”整合。如果您发现自己仍然需要选择“虚拟”更改,请尝试
-Rs
选项--这可能会给您更多的合并操作,但它会向后弯曲,以确保这些合并不包括您已经集成的任何内容。
p4 integ -b prod-main-beta [-Rs]
p4 resolve [-am]
p4 submit
可选3)改进构建工具,使版本信息位于专用文件中,其他构建文件链接到该文件。然后,您可以将版本文件从分支规范中排除,或者总是忽略对其所做的更改,而不必仔细挑选。下面是一个真实的例子:
https://swarm.workshop.perforce.com/files/guest/perforce_software/p4/2015-1/Version