As part of implementing branching for the project I’m currently working on, I had to do some restructuring of the source control folder structure.
The structure was generally well organized except for the fact they didn’t take branching into consideration when setting up the folder structure:
$
- Project
- AnalysisServices
- Assemblies
- DatabaseObjects
- IntegrationScripts
- Models
- OldLabBranch
- TeamBuildTypes
- Etc.
I wanted to create a branch in where AnalysisServices, Assemblies, DatabaseObjects and IntegrationScripts could be isolated in conjunction so new feature development could be done in parallel with regular maintenance without one breaking the other.
Using the branching guidelines I’ve talked a couple of posts ago, I managed to structure the folders as below:
$
- Project
- OldLabBranch
- Main
- Sources
- AnalysisServices
- Assemblies
- DatabaseObjects
- IntegrationScripts
- Sources
- TeamBuildTypes
- Models
- Etc.
The problem with this setting is that your Team Build Types won’t show up in Team Explorer 2005 because it has a dependency of TeamBuildTypes being a direct child of your Team Project’s folder. Moving back TeamBuildType to $/Project did the trick and everything worked fine.
$
- Project
- OldLabBranch
- Main
- Sources
- AnalysisServices
- Assemblies
- DatabaseObjects
- IntegrationScripts
- Sources
- Models
- TeamBuildTypes
- Etc.
When we upgrade to TFS 2008, I’ll move back TeamBuildTypes to the place recommended by the guidelines as they really do make sense.