We are trying to work on a solution to synchronize two TFS 2013 servers.
We have two TFS 2013 servers, one in the development environment (let's say TFS 2013 Development) and the other in the production environment (TFS 2013 Production).
We need to be able to:
- Synchronize pieces of code from TFS 2013 Development to TFS 2013 Production on an as needed basis.
- Synchronize the TFS tasks and work items between TFS 2013 Development and TFS 2013 Production. This should happen on an immediate basis and should be bi-directional. That is, when any changes are made to the work items/tasks in either TFS 2013 Development or TFS 2013 Production it should immediately be reflected on the other TFS server respectively.
We have started looking into the above and tried using the TFS integration platform for synchronizing code between the TFS 2013 development and TFS 2013 Production servers.
Hence we basically have three questions
Is TFS 2013 to TFS 2013 code/work item synchronization supported by the TFS integration platform tool?
How can we go about doing the Synchronization for the code repositories and work items as described above for TFS 2013 to TFS 2013?
Is synchronization a new direct feature of TFS 2013, and can this be done without any third party tools?
To start with, I don't understand the setup of your systems. TFS generally lives in 1 instance and 1 only. TFS is a production environment for the development team. It doesn't make sense to have two TFS systems and have them synchronize to make this separation.
If you need to create secure snapshots of your sources, you can create branches and secure these. If you need to promote the results, run a build and use the published build artifacts to install to the production environment.
Having your teams work on two different TFS environments at the same time is a very strange requirement.
To just answer your questions:
Now to answer your questions:
TFS Integration Tools It's a feature of the tool, and as long as you use the TFS Integration Tools (the version available from the Visual Studio gallery), Microsoft provides paid support. The TFS Integration Platform doesn't come with the same level of support. The TFS Integration Tools do not synchronize all data between environments, work item Tags, Test Results, Check-in notes, Labels, Permissions, Workspaces, Pending Changes, Shelvesets, File encodings, Subscriptions, Test Cases, Check-in policies, Reports, Team Portal / SharePoint, Process Templates, Work item queries, Builds, Warehouse data are not supported.
setting up You'd setup two syncs, one bi-directional sync for work one one-directional for sources and pray. There are so many things that can go wrong in this situation, as the sync is not transactional across environments and certain actions can happen synchronously on both environments that will put you in a stuck state. Generally when syncing between two systems you'd make one system master for a specific piece of data and you son't touch them on the other environment. This scenario is a nightmare waiting to haunt you until you turn it off.
For the source sync, you might opt for a manual checkout/checkin process instead.
Out of the box? No, this is not a supported scenario in TFS out of the box. There is the Integration tools (which you've already found) and there are a few 3rd party commercial tools like OpsHub and TaskTop.