I have a number of build chains that look like
A -> B -> C
For projects where I have a git vcs root, my first build config A is one to generate the short git hash for the latest commit. The next build B (usually "compile code/package") uses this for version/build numbers. C is "Deploy".
Both A and B have the same vcs root in their configurations (although A doesn't check anything out). C has no vcs root but has a snapshot dependency on B and a vcs trigger with "trigger on changes in snapshot dependencies" checked. B has a snapshot dependency on A.
This means the whole chain is triggered on any changes to the vcs root.
My question is: Is it better practice to only use the VCS Root in A, check everything out and provide the source as artifact dependencies to B?