Displaying all branch hierarchies in TFS 2010

If you are utilizing the new TFS 2010 branch folder feature you can easily list the branch hierarchy in source control using the code below:

    1: using System;
    2: using Microsoft.TeamFoundation.Client;
    3: using Microsoft.TeamFoundation.VersionControl.Client;
    4:  
    5: namespace DisplayAllBranches
    6: {
    7:     class Program
    8:     {
    9:         static void Main(string[] args)
   10:         {
   11:             string serverName = @"https://[SERVERNAME]:8080/tfs";
   12:  
   13:             //1.Construct the server object
   14:             TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(serverName));
   15:             VersionControlServer vcs = tfs.GetService<VersionControlServer>();
   16:  
   17:             //2.Query all root branches
   18:             BranchObject[] bos = vcs.QueryRootBranchObjects(RecursionType.OneLevel);
   19:  
   20:             //3.Display all the root branches
   21:             Array.ForEach(bos, (bo) => DisplayAllBranches(bo, vcs));
   22:             Console.ReadKey();
   23:         }
   24:  
   25:         private static void DisplayAllBranches(BranchObject bo, VersionControlServer vcs)
   26:         {
   27:             //0.Prepare display indentation
   28:             for (int tabcounter = 0; tabcounter < recursionlevel; tabcounter++)
   29:                 Console.Write("\t");
   30:  
   31:             //1.Display the current branch
   32:             Console.WriteLine(string.Format("{0}", bo.Properties.RootItem.Item));
   33:  
   34:             //2.Query all child branches (one level deep)
   35:             BranchObject[] childBos = vcs.QueryBranchObjects(bo.Properties.RootItem, RecursionType.OneLevel);
   36:  
   37:             //3.Display all children recursively
   38:             recursionlevel++;
   39:             foreach (BranchObject child in childBos)
   40:             {
   41:                 if (child.Properties.RootItem.Item == bo.Properties.RootItem.Item)
   42:                     continue;
   43:  
   44:                 DisplayAllBranches(child, vcs);
   45:             }
   46:             recursionlevel--;
   47:         }
   48:  
   49:         private static int recursionlevel = 0;
   50:     }
   51: }

The result of this code will be something like this:

blog

for a hierarchy like this:

blog3

Comments

  • Anonymous
    December 17, 2012
    Could you please share the demo code? mayur.bondre@volvo.com

  • Anonymous
    February 05, 2014
    I used the above and got this error TF14045: The identity d375f8f9-4d1f-494a-9e36-1aafd660f64c is not a recognized identity. Do you have any idea? I searched online but didn't find much. I am using TFS 2012 and VS 2012. Any help is appreciated.