0

I am starting to implement TFS build controllers in my TFS 2013 environment. To my disdain, I discovered that TFS only supports 1 controller per project collection. We currently use project collections organized by business unit (Accounting, Engineering, etc.). We have a small team and I cannot justify creating 10-20 VMs just for this. I am open to moving all team projects into a single project collection but I do not want to lose my source control history. I looked into the TFS Integration Platform but it doesn't look like TFS 2013 is supported.

Am I missing something here? Can I use the integration platform and keep my source control history? What other options do I have to reduce my number of project collections without losing history? We don't currently use work items outside of experimentation so I am really only concerned with the history.

Daniel Mann
  • 57,011
  • 13
  • 100
  • 120
Brian Swart
  • 922
  • 1
  • 9
  • 25
  • 1
    You should upgrade to TFS2015 where you have the possibility to use the build agents across the team project collections. – ds19 Nov 09 '15 at 15:43
  • 1
    You can have more than one controller per collection, while a controller is bound to a single collection. – Giulio Vian Nov 09 '15 at 15:47
  • @GiulioVian but only one build controller installed on a specific server so if you have 10 team project collections then you need at least 10 separate servers – ds19 Nov 09 '15 at 16:46
  • There is an unsupported way (http://blogs.msdn.com/b/jimlamb/archive/2010/04/13/configuring-multiple-tfs-build-services-on-one-machine.aspx) that may help gain some time before upgrading to 2015 and avoid all the data shuffling. – Giulio Vian Nov 09 '15 at 16:57
  • @ds19 I did some googling and I see where build agents will be able to be shared across multiple collections [link](https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/4417771-use-a-build-controller-over-more-than-one-team-pro). I can't really find what affect this has on build controllers. It sounds like you will still have to assign agents to a collection. Do we know if this will be as simple as assigning a controller/agent to the collection during development and reassigning later? – Brian Swart Nov 09 '15 at 18:21
  • 1
    @BrianSwart In TFS2015 the concept of build controller is gone; the build agents are assigned to a build pool which is cross team collection. More details are [here](https://msdn.microsoft.com/Library/vs/alm/Build/agents/admin) – ds19 Nov 09 '15 at 19:04

1 Answers1

2

You can use TFS Integration Tools to move team project in TFS2013, but there are also some limitations. Detail for you reference: https://visualstudiogallery.msdn.microsoft.com/eb77e739-c98c-4e36-9ead-fa115b27fefe

I have test in my local environment , succeed.(Both different collection and the same collection)

My environment:

TFS2013 SQL2012 TFS 2010 Team Explorer VS2013 TFS Integration Tools2012

Prepare environment:

Install TFS2010TeamExplorer Cause TFS Integration Tools2012 need it

Install TFS Integration Tools2012

PS: It’s not support SQL2014. When you connect SQL2014 during the install of Integration Tools , it would throw out an error: Vaild values of the database compatibility level are 100.110,or120... SQLkey:CreateDatabaseScript…90

Detailed Steps:

  1. Create a new empty team project in another collection. Choose the same Process Template as source project when creating new project.
  2. Launch TFS Integration, Click Create New->Choose "VersionControlAndWorkItemTracking" template under "Team Foundation Server" folder (for you could use 'VersionControl' template)
  3. Configure Workflow Type, Frequency, Version Control Session as below, Left Source should be the project you want to copy, Right Source should be the empty new project

Note, for the Paths section, you must include any folders (paths) under the root explicitly and individually in the folders list. Just using $/ or $/MyProject will not work. For example, if you have folders src/ and test/ under the root, you must include these as $/MyProject/src and $/MyProject/test/

  1. Do the same for Work Item Tracing Session.
  2. Click Save to Database button. Then click Start.
  3. Resolve the conflicts if any.
  4. Done

enter image description here enter image description here

At last you can view your history in the Changeset Comment. For example: It’s created of Changeset134 2015-10-19 enter image description here

PatrickLu-MSFT
  • 49,478
  • 5
  • 35
  • 62
  • Since I am just starting to implement this, I am going to go with @ds19 suggestion and wait for TFS 2015. I will mark this as the answer as it does seem to answer my original question. However, I use SQL 2014 for my backend so this wouldn't work for me specifically but it looks like it would work otherwise. – Brian Swart Nov 12 '15 at 19:30