I have build C that depends on builds A and B. C does not have any VCS roots attached. A has 2 VCS roots that sync from Perforce server S. B has 2 VCS roots that sync from a Perforce proxy P that points to server S. Users may submit to either S or P. Build C has snapshot dependencies on A and B, but it only exists, so users may press Run button once to effectively run A and B.
It is absolutely critical that A and B run at the same changelist number when they run. Does my setup guarantee this behavior? Consider the scenario where both A and B go in the queue after being triggered, but only one agent is available, so A starts while B sits in the queue. Another change is committed at that time.
If not, what can I do to achieve what I need?
I could see attaching all 4 roots to both A and B, but the sync will be very, very long because P and S are in different physical locations as are build agents, and we are syncing ~10 gb each time. What if I add -:. checkout rules to the roots that I don't want to sync?