So at a high level, we have multiple projects/solutions in company and we need to keep them in 1 source control. Since the number of projects is around 50, we are not creating individual repositories for each of them but instead are all in same repository. Our branches reflect the environments which is Dev, QCT, STG, PRD.

Having said that, which of the below 2 options should be good for us:

  1. Each project has its own folder inside which different branches are created
  2. Core repository starts with branches inside which are folders for all project

Any experience based input with these 2 strategies would be greatly appreciated. Even if its a blog or some other place where this discussion has happened would be nice.

EDIT: Just to be clear, i am not asking whether to create branches or not and to create them for each feature or not. We have already defined we are going to work with 4 branches representing our environments. The question is the location of those branches. Should those branches be inside the project for each project or at a global scale.

The one difference for me is inside project branches has more management burden but also allows better control over branch and script control for just that project.

  • Are you using TFVC (classic TFS Source Control) or Git for managing the code? Does your workflow / software architecture mean that developers typically change multiple solutions to deliver features or are they self contained? Do you have any form of build and deployment automation? Which version of TFS are you using?
    – James Reed
    Commented Jan 11, 2019 at 10:21
  • Possible duplicate of To branch or not to branch?
    – gnat
    Commented Jan 11, 2019 at 10:49
  • @JamesReed We are using TFS for version control. Devs do have to modify multiple solutions some times for single feature delivery. We just have scripts to deploy changes to environments but no automation as such, all manually triggered. We have TFS 2018. Commented Jan 11, 2019 at 20:45
  • @gnat i dont see how thats a duplicate. i will edit question for clarification. Commented Jan 11, 2019 at 20:50
  • Uh... see this earlier question - don't have branches for your environment. Although really my bigger concern is that you have so many projects in a single root; normally you'd want to break them up. Not because you might reuse them (although that's possible), but because it allows you to better manage the connections between them. Commented Jan 12, 2019 at 1:23

1 Answer 1


I have 2 suggestion

  1. Repository

I would prefer to split the projects in multiple repository. All related items in one repository and shared/common projects in one repository. It is easy to maintain in long run, if we have control in individual project level for deployment. In this model, you should have some mechanism to deploy the dependent items in other projects or shared folder.

  1. Branching

Instead of following 4 different branches, you can follow a single branch for feature. No need to merge with master. No need to move the code to branches, Dev, QA, UAT and prod deployment happen from same branch

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.