Search code examples
tfsversion-controlazure-devopstfvc

Are Branches In TFS's Default Collection Root Problematic?


Been using TFS for what I think is a while. I recently got a new job & I'm wondering if their use of TFS is wrong. I am used to seeing only Team Projects listed in the Default Collection root. However, where I now work, I am seeing Branches at the root (as well).

I haven't said anything yet, but this means they could (further) branch any given (branch) folder into the root of the Default Collection. This seems like a big issue to me...but maybe not.

So my questions are...

  • Is having Branches at the Default Collection root wrong?
  • Is this a legitimate practice?
  • What problems can this cause?
  • Should I say something?
  • How is it possible to create Branches at-root? (I tried to as a test and couldn't)

enter image description here


Solution

  • I would speculate that the branches at the root were created in one of 2 ways.

    1. They were created by using the "branch from Team Project" in the Create Team Project dialog.
    2. The folders / projects were created separately and then a baseless merge was performed between the folders creating a branching relationship.

    As for if it's a good idea or not. I would say no. I can't think of any upsides to this. As for downsides here is a small list.

    1. It's untidy, not necessarily the best reason but it could cause confusion if you have many branches, for example if you use feature branching.
    2. If your team are using work items to track work then it will cause problems. Work items exist inside a team project and cannot be moved between them. The current thinking for using TFS is that you have a single team project for all of your code and use "Teams" and "Team Rooms" to organise your work. This way tasks can be moved between teams without the need to create duplicate tickets.

    If it's just an aesthetic issue then I would say it's probably not worth changing at this point, however you might want to suggest that future projects / branches don't follow this pattern.

    It's subjective, but I would say that as you're new to the team I'd bide your time as see if there are any practical issues being caused by this. If there are then suggest that the approach is changed. If not then I'd just live with it. I work with a team who have the same issue, and whilst I don't like it, on a day to day basis it doesn't make a difference to having a more conventional branch / folder structure.

    If you do decide to challenge it, make sure you have a plan to migrate to something better!