Size of the TFS server

May 19, 2010 at 4:14 PM

How does labels affect the source database size?

One of my colleague say that creating labels or branches just save versions of the changed files alone and it has a map of the changes and not the exact file is saved.

So if I create more and more branches and Labels will the TFS database explode of size.


May 19, 2010 at 4:40 PM

The impact of labels on TFS database size is minimal.

In Team Foundation, labels are different and more powerful than labels were in Visual Source Safe.  In VSS, labels are for a single point in time, in TFS labels are able to have versions of each file in the label from different points in time. 

For example, if you label a build then find and fix some bugs you can change the labeled versions of a some of the files (to either exclude changes that introduced bugs or to include changes that fixed bugs. 

TFS labels, therefore, do not represent a point in time, but rather a collection of points in time.  Having said this, the cost of applying a label to a set of changesets is minimal.

The impact of adding branches is also minimal. Since TFS stores only "diff" information, when a file is changed, the entire file is not redundantly saved.

Having said this, the real cost of branching is NOT in database size, but in the manual effort required to manage merges and resolve merge conflicts. For this reason, in our best practice guidance, we advise people to keep their branching structures simple, and to understand the cost and benefits of adding new branches.

Bill Heys
VS ALM Ranger