There was some confusion regarding how the migration toolkit synchronizes work item tracking metadata between two systems, so I have decided to explain it a little bit.

During every synchronization pass the toolkit calls non-TFS work item store's SynchronizeMetadata method passing reference to a work item tracking project used by the TFS system. Implementing that method is up to tool's authors; the toolkit itself doesn't make any assumptions about what metadata it synchronizes and in which direction such synchronization occurs.

In case when TFS system is used on both sides, we implement metadata synchronization by copying metadata from the system defined as TFS from the config file, and applying it to the "Source" system. The synchronization is controlled by an optional MetadataSynchronization element under the source-specific TFS node:

<Session id=”test”>

  <Tfs server=”Foo”>

    …

  </Tfs>

  <Source>

    <Tfs server=”Bar”>

      <MetadataSynchronization types=”all”/>

    </Tfs>

  </Source>

</Session>

Here's what you can control:

Specifying what metadata must be synchronized:

<MetadataSynchronization types=”accounts lists types all”/>

“types” attribute specifies what metadata types will be synchronized. “all” is the default value; specifying an empty string disables metadata synchronization

 

Skipping synchronization of certain work item types:

<MetadataSynchronization>

  <IgnoredTypes>

    <Name value=”Bug”/>

    <Name value=”Orcas Bug”/>

  </IgnoredTypes>

</MetadataSynchronization>

Work items referenced within the IgnoredTypes section will not be synchronized. Unfortunately this feature does not work with work item type mapping.

 

Skipping synchronization of certain global lists:

<MetadataSynchronization>

  <IgnoredLists>

    <Name value=”GlobalList1”/>

    <Name value=”GlobalList2”/>

  </IgnoredLists>

</MetadataSynchronization>

Global lists referenced within the IgnoredLists section will not be synchronized.