Steps for changing process template for an existing project in TFS 2010

Martin Hyldahl picture Martin Hyldahl · Sep 29, 2010 · Viewed 12.4k times · Source

I have an TFS server installation that through time has gone through upgrades from TFS 2005 to TFS 2008 and then to TFS 2010. During the lifetime of the installation a lot of projects have been created and different project templates have been used. MSF Agile 4.0, 4.1, 4.2 and 5.0. and a few MSF CMMI ones.

What I would like to do is "replace" the project template used for all these projects to use a new one common one: Microsoft Visual Studio Scrum 1.0.

I am aware that TFS project templates are used as templates for creating new projects and cannot modify the tfs projects definitions after creation.

Uptil now only the version control and build server part of TFS have been used and there are no existing work item types.

Additionally all projects and build scripts are depending on the source code paths stay the same.

As I see it I have the following options:

Create new TFS projects using the correct project template and then move/branch the source code to the new project.

  1. All code is moved to a temporary team project.
  2. The old project is deleted
  3. New project with the original name and correct process template is created
  4. Code is moved to the new team project
  5. Temporary team project is deleted

    • All the build definitions needs to be to recreated which is not an option.

    • The source code move/branch will "mess up" the versioning history

alt text
By messing up the versioning history I mean that when you move source code it will behind the scenes do a delete + source rename on the original location and the history will still be located in the old project. This will make searching in the history difficult and if I actually delete the old project I will loose all the history before the source code move.

This is really not an option for me since there is years of code change history that is needed to for supporting the different applications being built.

Use the TFS migration tools to migrate to another TFS project

  • This has the same downsides as the first solution

Replace/import work item types, install new reports, create new SharePoint sites

For each tfs project

  • Delete existing work item definitions using "witadmin deletewitd"

  • Import each work item definition from the new process template using "witadmin importwitd"

  • Import work item categories using "witadmin importcategories"

  • Delete old reports in project folder in report server

  • Upload the report definitions from the new process template

  • Modify data sources used for the reports using the report manager to point to the correct shared data sources (TfsReportDS and TfsOlapReportsDS)

  • Modify the report parameter ExplicitProject default value to "" (empty string) and disable prompt user option.

  • Export the documents in the old SharePoint site using stsadm

  • Delete the old SharePoint site

  • Recreate the sharepoint site using the TFS2010 Agile Dashboard site template

  • Activate site feature "Team Foundation Server Scrum dashboard"

  • In TFS Project Settings -> Project Portal Settings: Enable "team project portal" and ensure the url is correct. Enable "reports and dashboards refer to data for this team project"

And finally..

  • Process the Warehouse

  • Process the Analysis Database

Even though that this involves a lot of small steps this looks more appealing because this option will not force me to move the source code and my existing build definitions will be intact.

My question:

Are there other ways to achieve the replacement of work item types that I haven't mentioned?

And/or am I missing any steps in last solution?

Answer

Grant Holliday picture Grant Holliday · Nov 1, 2010

Given that you aren't using any existing work item types, your final proposal looks like the best option.

After deleting the old reports and exporting the SharePoint documents (you could also use Windows Explorer instead of stsadm), there are actually two commands in 'tfpt' that will help you. This will reduce it from 14 steps down to 5 or 6 steps.

tfpt addprojectreports  Add or overwrite reports for an existing team project
tfpt addprojectportal   Add or move portal for an existing team project

tfpt addprojectreports /collection:http://yourtfs:8080/tfs/YourCollection /teamproject:"Your Team Project" /processtemplate:"Microsoft Visual Studio Scrum 1.0" /verbose
tfpt addprojectreports /collection:http://yourtfs:8080/tfs/YourCollection /teamproject:"Your Team Project" /processtemplate:"Microsoft Visual Studio Scrum 1.0" /verbose