I've discovered an issue which is causes us problems.
Here is the scenario:
A project template has 3 VCS roots, defined in the configuration in this order:
- Root A
- Root B
- Root C
Server side SVN checkout is selected,
When a team creates and builds a project from this template, it can be seen that when the patch is being built, the logs show that the order of the checkouts is not the order that specified, eg order can be:
- Checkout B
- Checkout A
- Checkout C
Why does this cause us problems? Because Root A contains the stable build scripts - however we would like teams to be able to modify versions of the build scripts so that they can try out changes before committing to the stable branch. So in Root B, they branch files they wish to change from Root A, make their changes, and then the idea was that because Root B is after Root A in the order, any modified scripts they have will overwrite the Root A scripts, allowing them to try out their changes / implement team specific changes.
But - because the order does not seem to be guaranteed when the checkouts are performed, teams sometimes lose any local modifications, as Root A is checked out after Root B, so the agent only gets the files from Root A.
I would have thought that the order should be in the same order that it is in the configuration settings.
Is this a bug, or intended behaviour?
Or.. whilst I am writing this down, perhaps someone has a better way of implementing what we are trying to acheive above?