24 Mar
2008

Managing Global Lists in TFS

Having just inherited a TFS installation to manage, I received a request to add some values to a global list. I got a little nervous about this when I saw that the server had many (MANY) global lists in it already and I wanted to be very careful not to break anything during this change.

Of course the first thing I did was consult the master book on the subject of TFS, Rich’s Working with Microsoft® Visual Studio® 2005 Team System. This was a great start to groking the whole Global List thing.

The steps needed to do this are pretty simple and documented well from Microsoft. The step to export your current global lists is to use the glexport command line tool. From the Visual Studio command line prompt (this works fine on a client), do this:

glexport /f AllGlobalLists.xml /t myTfsServerName

Credentials used are the local login credentials. This gives me one big file containing all the global lists in the server. Now the question I had was this, "Should I edit this master global lists file and import the whole thing, or should I just try to import changes to one list?" Obviously I wanted to work only on the one list I needed to change, but what effect would it have if I pulled out all the other lists from the file and uploaded just a single list in a smaller XML file?

I was scared to death of deleting all the other lists in the file. I saved a copy of the master, and then took out all the global lists except the one I was interested in, changed the values, and ended up with something like this:

<?xml version="1.0" encoding="utf-8"?>
<gl:GLOBALLISTS xmlns:gl="http://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists">
  <GLOBALLIST name="Teams - Product Backlog">
    <LISTITEM value="Team A" />
    <LISTITEM value="Team B" />
    <LISTITEM value="User Experience" />
    <LISTITEM value="Team C" />
  </GLOBALLIST>
</gl:GLOBALLISTS>

So, on a wing and a prayer I ran this command:

glimport /f TeamList.xml /t myTfsServerName

And guess what happened: It worked great! All of my other lists were intact and my new team names showed up just fine. So I learned 2 things in this little exercise.

  1. You can import a single global list XML file into your TFS server without affecting other lists.
  2. glimport and glexport work just fine on a VS2008 client talking to a 2005 TFS server.