Sebastian Edelmeier
Sebastian Edelmeier

Reputation: 4167

Cascaded Branching in TFS or : How to Branch into a Branch?

In order to make referenced assemblies available to the TFSBUILD process, we have set up a separate team project for those. We branch the assemblies into each team project with a solution that requires them (in the following referred to as target). This is, as far as I have understood, a usual way of doing it

Now we have come to a point where that plain doesn't work. Assuming the target itself is branched, TFS won't allow us to create a branch of our Assemlies here.

While I can somehow see where branches inside branches might be problematic, I really wonder why there is no support for a suchlike operation. We're not the only ones with such a requirement, are we?

The first thing coming to my mind was: branch the Assemblies somewhere outside the scope of the target's branches.

Target
    |__Br1
    |__Br2
    |__Assemblies

Nevertheless, if the branches require different Versions of the same Assembly (like Br1:NHibernate 2.1 , Br2:NHibernate 3.2), like product updates often do, this would lead to something ugly, too. Eventually I'd have to treat NH2.1 and NH3.2 as different products in order to get this done...

Does anybody know a pattern that enables us to branch like we are trying to, but with a bit more success and a bit less pain?

Upvotes: 0

Views: 118

Answers (1)

Alexander Schmidt
Alexander Schmidt

Reputation: 5743

There are always two methods for dealing with this problem:

  1. Folders inside Branch (which is suggested the best method and where you can use -tags in your project-files to reference to a specific location of assemblies inside each branch. This means, that each branch gets its own copy of your assemblies.
  2. Folder at Team-Project (as you did) - You can use too but you cannot deal with different 3rd-party-tool-versions in different branches.

So I know, the solution would not be painless for you, but the possibilies are limited in my opinion. We are using the first variant in our projects but it also depends on your branching-strategy.

Upvotes: 1

Related Questions