Drill through merges in TFS2010

January 5, 2009

 
In the current available versions of Team Foundation Server [TFS2005 and TFS2008] it’s hard to look up changes that originated in another branch. Let me explain this by an example.

I have a Main branch and two feature branches that were both branched from Main. Now let’s assume certain changes are made to FeatureBranch1. These changes are merged (reverse integration) to Main and at a later stage a release branch (1.1) is split off to the Release folder (from Main). Some time later the code file is being inspected in the 1.1 branch (release folder) where the code change of FeatureBranch1 was executed. In the Annotate window [a new feature in TFS2008] you would be able to see that on line x a change was made by person y on time z. So far so good! The question that now pops up is : “What do you really want to see in the changeset details?”. The best answer of course is that you immediately want to see that those changes originated from the FeatureBranch1, but at this moment TFS2008 won’t provide you with this information. You will have to manually drill down the branch hierarchy to find out that this change came from a check-in into the FeatureBranch1 by person x. TFS 2008 only gives you the information (via the annotate feature) that the change came from a merge (Main branch). This is not ideal, because you will have to step into the history and dig deeper to find out the original changeset in FeatureBranch1.

TFS 2010 will come to the rescue in the future and will provide you with the details you are really looking for in that type of situation. In the tooltip of changeset 74, TFS drills down through all merges and loads the details of the initial check-in at FeatureBranch1. Note that the screenshot is taken in the source of code in the 1.1 release branch.

Right-clicking on the changeset 74 hyperlink will even give you the option to view the original changeset details of the FeatureBranch1 check-in or to view the history …

The history window as seen above will now give you a hierarchical view on how the changeset came into the release 1.1 branch. To top it off, you can also track the 74 changeset visually by right-clicking …

The first view in the screenshots below is a timeline view where you can follow the merge history of changeset 74 and the second view is a hierachical view where you can detect the hierarchical dependencies between branches.

Very nice features I wish I had already at my disposal right now …


Follow

Get every new post delivered to your Inbox.