We changed perforce to set the source code directory to the plans build-dir folder as opposed to using the root defined in perforce.
The reasons for this change are:
The reason the changes were made initially was to make it easier for you to run distributed builds. The benefit of this is that a single plan can be run on different remote agents and different machines using the one client file. You don't have to worry about ensuring that the workspace root exists exactly the same on all of these boxes, Bamboo will look after it all for you. It also mean that the build data is stored in your bamboo home rather than elsewhere on the system (where there may be permissioning issues). There were also some issues with caching the source repository that we were trying to resolve.
The problem is that there now needs to be one client per plan in case they build at the same time and alter the dir. Some customers have expressed that this is not a good idea.
see http://forums.atlassian.com/thread.jspa?threadID=24094
Alternatives:
- Switch it back to the way it was (just using perforce's definition)
- Provide a toggle - the user can pick the old way or the new way
Concerns
- The caching source dir is not necessarily needed at this point in time as the build process has changed
- What are the consequences if it ever fails to get the client root
- Can only set 2 alternate roots - (this functionality hasn't been tested yet either)
- If there is the option the user will have to ensure that he doesn't have 1 client set to manage on one plan and not manage on another
Thanks,
-Scott