Work Item Moving Tool is back!

Hey guys, I’ve finally had a chance to update my work item moving tool to work with the RTM release of Team Foundation Server. Along the way, I made some modifications and changes that I’ve wanted to do for a while. I haven’t thought of a better name than ‘work item mover’ so for now I’ve code-named it if you will ‘Hemi’.

I’ve posted the tool to:  You’ll also need:

I included the Team Foundation Server binaries that it depends on, but the best way to run the tool is just to run Hemi.exe from the Visual Studio Tools Command Prompt.


Hemi starts up and looks as follows:


I’m thinking about using a MDI type of interface in the future; that would enable you to save and re-run moves that you might do on a regular basis. 

To start moving work items, the first thing to do is use the File menu…


This starts the various stages involved in moving work items from one team project to another. 


The first thing to do is pick the Team Foundation Server that you want to access.


Depending on the authentication that you are using, you may get prompted for credentials.  Once you’ve chosen a Team Foundation Server, the next step is to select the work items that you want to move.  This is done by selecting a Team Foundation Server Query.


Pressing this button will bring up the same work item query control that is used in the Excel integration. 


Once you select a query, press the Find button on this dialog to bring up the actual work items.  Press OK and you’ve established the work items that you are going to move.  Now select the Team Project to move these work items to.


Once you’ve done that, press Next to move on to the next stage.


Any query that you might use might encompass a few different work item types, so in this stage, you’ll decide how to map those work item types to the Team Project you are moving the work items to.  In most cases, you’ll probably move the work items to the same type in the other Team Project. 


But, sometimes work item types are defined differently.  For example, in a CMMI project, a bug is defined with two required fields – Symptoms and Steps to Reproduce.  These fields aren’t required in an Agile project.  So, this stage also gives you the chance to fill these missing values in.  Press the Check for Missing Values to see what these missing values are.


If there are any, enter values into the table.


Press Next to move on to the next stage and actually move your work items.


This stage shows you what work items will be moved, as well give you a couple of options for your original work items.  Team Foundation Server doesn’t support deleting work items, so your original work items will still exist.  By default, Hemi will create a Moved state for these work items and assign them to that state.  Also, it will create links between the original work items and their new copies, and vice versa.


Once you move to the next stage, your move will be committed! 

If you look at your original work items, what you should see is that it is in a Moved state:


And also, your original work item will be linked to the new one, and vice versa.


Anyways, I hope you find Hemi useful – if you run into any bugs or have suggestions, please let me know.  Either through this blog or email me at



Comments (5)

  1. Greg Duncan says:

    When I select the "Move Work Items" menu option, I’m getting

    "System.IO.FileNotFoundException: Could not load file or assembly ‘C1.Win.C1FlexGrid.2, Version=2.5.20061.233, Culture=neutral, PublicKeyToken=79882d576c6336da’ or one of its dependencies. The system cannot find the file specified.

    File name: ‘C1.Win.C1FlexGrid.2, Version=2.5.20061.233, Culture=neutral, PublicKeyToken=79882d576c6336da’


    Am I missing something?



  2. Greg Duncan says:

    Downloaded the FlexGrid and now the app is working as expected…

    Thanks and have a happy Thanksgiving,


  3. Eric Lee on Work Item Moving Tool is back. Don’t forget this file. Marcel de Vries on How to waste…

  4. lcampbell says:

    Eric, thanks much for finishing the "Hemi" tool.  It works as advertised! Note that Agile template workitems don’t seem to have the Moved state but we can work around this.

    Regards, lc

  5. I’ve written about this previously but it’s worth a re-mention. It is not possible through the Work Item