Showing posts from February, 2010

Team Foundation Server issues – changesets getting squashed

This is the second part in a series of posts about Team Foundation Server.
This time I want to talk about how TFS merges changesets into a new changeset. See the scenario below.

In this scenario a branch has been created from the trunk. In this branch 4 changesets have been created. Later on, these changesets are merged back to the trunk. TFS creates a new changeset (E) which is the combined result of the changesets A to D.
Now what if you find a bug in the trunk sometime after changeset E? You can build an older version of the trunk and determine that yes, the problem is indeed in changeset E. But you would like to know what specific changeset introduced the bug. Was it changeset A, B, C or D?
It turns out that there is no easy way to determine this in TFS 2005/2008. TFS has combined all the information in the new changeset. Sure, if changesets A – D touched different files the analysis will be easy, but if the merge contained a lot of changesets the analysis will be a lot harder.