I've recently upgraded my TFS environment to 2012 (from 2010) and would like to take advantage of the project management features (ie. agile dev).
The issue I have is the current project has custom templates that cannot be automatically upgraded though tfs' wizards.
I was wondering, is there a way to clone a existing project or branch it so it retains all its change history while being able to implement the new agile templates?
Have you taken a look to http://tfsintegration.codeplex.com/ ?
I used that several times to migrate upgraded TFS2008 projects into TFS2010 to use the new templates. You can also create work item mappings to get them migrated too, so that the checkins will not lose the work item relations.
Small disadvantage is, that the history is flatten down to the date of the migration. I "solved" this by editing the adapter to insert the old checkin date into the comment.
Related
I have been responsible for administrate our TFS projects and have started to investigate the current configurations. I found the following link for determining which process our team projects are connected to: How to determine what Process template an existing TFS 2012 project is configured with?
When using the rest API described in the article above, it seems like the projects depend on a process template called "Microsoft Visual Studio Scrum 2013". When reading this article: Scrum process it seems to me that the process is outdated and should be upgraded to use the "Scrum" template.
I have searched the internet for knowledge on how to upgrade the project to use the new Scrum process but had no luck of finding an answer. Does anyone have an idea of how to update the projects to depend on a newer process? Maybe the whole question is wrongly put as I may lack some obvious knowledge about how these things are meant to work. All I want is to ensure our projects are updated to use the latest TFS technology.
We use Visual Studio 2017 and did recently upgrade our TFS server to TFS 2018.
In general, some new features will be introduced when upgrade from old to new version of TFS.
Generally if you haven't made any changes to the original process template, upgrading is quite easy. Just enable new features by running the Configure Features Wizard in your team projects configuration page.
If it can’t upgrade automatically, you need to apply updates manually. See Add updates to team projects manually.
If you customized the process template, then you can follow the steps mentioned in this link to Update a customized process template to access new features.
To update the existing projects, a not so nice but easy way is to remove all work items and process data from your project and then add the newest items. Martin Hinshelwood has some great guidance on how to do this.
I need to create a new project from an existing one in TFS. This is for source control only. I do not need to copy any work items.
so now i need to create NewTeamProject in NewProjectCollection and use the source branch of OldTeamProject in OldProjectCollection.
Kindly advise to go ahead with this.. Thanks a lot for your help in advance..
Manual Split
Create a new team project in your existing collection
Pick the branch from team project option in the creation wizard
Follow the split a team project collection guidance
However, I have a feeling that this will not bring all the history along with it, and it's not a particularly nice option, especially when it comes to the collection splitting.
TFS Integration Tools
Another way is to use the tfs integration platform, which basically replays all the checkins on a new team project, which can be in your new collection. You will lose the original date/time of the checkin, due to the way this program works but will still be able to see what each checkin changed.
TFS Integration Tools
Tfs integration tools blog posts and references
There is one risky way to get your timestamps correct, by manually updating the database
There are a lot of questions about upgrading here, but I have another, very specific one, that I don't see asked.
When installing TFS 2010, on the first run, you get a wizard, which lets you choose a database (which you presumably backed up, and restored onto the new instance) to use, and it allows you to upgrade that instance in-place.
If I'm performing a dry-run, during the course of which I do not want to disable access to the OLD tfs, is it possible for me to do this upgrade a second time without reinstalling TFS?
IE: can I create a new team project collection and point it to a tfs 2008 database and have it upgrade that?
I dont think it is possible to point to a TFS 2008 database from TFS 2010.
We have migrated our TFS 2005/2008 too.
We installed a fresh new TFS 2010 and migrated the old projects into the new TFS 2010.
All files of the projects in TFS2005/2008 are set to read only, workitem history and changesets are migrated into the new TFS2010.
We decide to switch the process template too so we created another team project with the Scrum Template.
Afterwards the source and all needed files are copied to the new Scrum team project.
Now if I let me show the history of a item under source control, it shows the history till the beginning of each item (points to the "old"/first migrated team project in TFS 2010).
I did it an upgrade test on a dummy machine and when i get to the real thing I had to uninstall and remove all leftover db's (tfs_configuration) you can see migrate data from TFS 2008 to an already working TFS 2012
Is it possible to rename a TFS2010 team project?
The project in question is based on the CMMI 5.0 team project template, but it has been modified with several custom modifications (new WITs and link types).
For a rename to be feasible, all history must be maintained.
In all: No, it can't be done.
Your only shot is to create a new Team Project named as you 'd like and then move everything to it. This involves serious work done by hand.
After that, you can't erase your old TeamProject - you will loose the history. You can lock it and make it unavailable to everybody.
After having done this a few times we think about the names of our Team Projects a lot. If at some point their name is(gets) wrong, I 'd say we 'll live with the mismatch.
Unfortunately, team projects in TFS are not able to be renamed in TFS 2005, TFS 2008, or TFS 2010. It's currently the #1 feature on the Visual Studio User Voice site for TFS. If this is something that's important, I'd recommend putting some votes on that feature: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2037605-rename-project-in-tfs
As far as I know you can create a new TeamProject and move your sources while maintaining history. Not sure if work items are preserved even when you delete/destroy the original TeamProject though.
As per the other comments "No, you can't", when we do it here we create a new project and then migrate source and work items over using the TFS Integration Platform, then delete the original project
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.
All code is moved to a temporary team project.
The old project is deleted
New project with the original name and correct process template is created
Code is moved to the new team project
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
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?
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
Your first option is IMHO your best shot.
You can branch the sources from the old team project to the new team project. With TFS 2010 you can see the history also from the branched location. So you don't loose functionality in here.
The Build is just an msbuild file which is stored in source control. The only thing you have to do is actually copy the build definitions. You can do that either manually, or you can create a little app that does that for you.