I'm a part of a small development team who are in the process of moving from Visual Source Safe to TFS2010.
I've been reading about TFS structure and came across a very good question.
One thing mentioned in the above link which I'm not sure about is the Development structure:
- Development/
- Trunk/
- Source/
- etc/
- Branches/
- Source/
- etc/
I don't really understand the need for the Trunk
and Branches
as separate children containers to Development
. How I'm reading this structure is that Trunk
would branch from Integration
(or Main
if you use MS terminology) and Branches
would then branch from Trunk
(i.e. Trunk
is the parent to multiple Branches
).
If this is the case, I don't understand the advantage of the extra layer in the hierarchy. What seems logical to me (remembering that I've been learning this stuff for about a day) is that if you want multiple development branches, to have each development branch as a child of the Development
container:
- Development/
- DevBranchOne/
- Source/
- etc/
- DevBranchTwo/
- Source/
- etc/
In the above structure (where DevBranchOne
and DevBranchTwo
are replaced with meaningful names), development branches are siblings and all branching from Integration
(or Main
). Given the above, my questions are:
Trunk
in Development
correct?Development
?Trunk
simply something that has been carried over from SVN (with which I have no experience)?I agree, in the post you linked to it appears he has 2 "trunks", the Development\Trunk and Integration which is just another name for trunk in his context it appears.
Depending on your branching strategy you usually only want to have one "trunk" (or integration branch).
However, there are some scenarios where you might want multiple integration branches, such as if you are doing something like branch by feature, but you also have a concept of feature groups where the various feature branches need to be integrated together into the feature group, before being integrated into the subsystem's integration branch, which then will later integrate into the products main integration branch (aka trunk).
However, most branching strategies only require a single integration branch.