List Workspaces with no outstanding pending changes

January 14, 2014

This question originally came up as a StackOverflow Question. Basically, the problem was, how can I tell which of my workspaces are now unused. If you work in a single workspace then this may not be an issue; however, if you have an automated tool that interacts with TFS, you may find it’s constantly creating new workspaces and not cleaning up after itself.

The code for a simple console app is below:

    class Program
        static private TfsTeamProjectCollection \_tfs;

        static void Main( string[] args)
            \_tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("" ));

            var service = \_tfs.GetService< VersionControlServer>();
            Workspace[] ws = service.QueryWorkspaces( null, null, null);

            foreach( Workspace s in ws)
                var pend = s.GetPendingChanges();
                if (pend.Count() == 0)
                    Console.WriteLine( "Workspace {0} has no pending changes" , s.Name);
                    // s.Delete()


Obviously change the URI. I’ve commented out the Delete() command, and I strongly recommend that you check what it intends to delete before you let it go.

My intention is to make this into a Codeplex project at some point, and I’ll update this post if I do so. Please feel free to make recommendations for other TFS functions that you might like to see in such a project.


I did manage to create that project; it’s here:

Profile picture

A blog about one man's journey through code… and some pictures of the Peak District

© Paul Michaels 2024