There is a known issue with perforce and distributed builds where changes are not applied correctly to each agent. The Perforce server keeps record of which changes you have received so once you have downloaded them on one box, Perforce will assume you have them even though the next build may be on another box.
The first alternative for nice distributed build systems is the Alternate Roots, however these can not be managed by Bamboo and only allows for 3 roots.
It would be nice if we could somehow manage this better for the user
Suggestion 1: Bamboo takes in all the information required to CREATE a client during plan configuration. When it builds, it would create a Perforce Client based on the template given in the configuration fro that machine, thus you would have a client per machine and changes would be picked up properly
- Any updates the the plan configuration would have to be reflected in the created clients
- Permissioning could be an issue. The Bamboo uses would require special permissions to be able to create clients. Also the create clients need the correct permissions set.
- If an agent gets removed the client either needs to be removed by Bamboo (difficult to manage) or you can end up with 'rogue' clients left over.
- There may be client number limits on the Perforce Server.
Suggestion 2: The User creates all the required clients (one for each machine) and somehow tells Bamboo which client to use on which agent. However this is not a preferable situation. It would be extremely painful for the user to setup and maintain