TFS 2013 to TFS 2013 synchronization - visual-studio-2013

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.

TFS Integration Platform (March 2012 Release) supports only TFS2012
You can write your own synchronization tool using TFS API.
No. TFS2013 doesn't have this feature.

Related

Migrating from Visual Studio Online to On-Premises TFS 2017

How can one migrate from Visual Studio Online to an on-premises instance of TFS (version 2017)?
Ideally I'd like to migrate all code, project management data, etc.
Thank you for your time
There's no way to do this without the use of third-party tools, all of which will result in some amount of data loss.
There is currently no way to move from VS Team Services to Team
Foundation Server or to export a project or project collection in such
a way that it can be attached to a TFS server.
Depending on what features of VS Team Services you're using it may be
possible to migrate some of the data to a new target environment with
relative ease. And depending on what you're willing to lose you may be
able to migrate some other bits easily as well.
There are 3rd party tools that offer migration to and from VS Team
Services, though these can be pretty expensive.
Refer to this thread for details: Move from VS Team Service to an on-premises TFS

Search between different TFS / projects - visual studio

Got 5 different TFS, is there a way to search in all TFS's? Visual studio plugin?
Right now I've downloaded all the source code to my local machine and turned on indexing on serveral filetypes (properties and inside files)..
If anyone has the same problem, how do you solve this kind of problem?
Never heard this kind of tools or plugin.
In a sense, there are different Application Lifecycle Management system. They have different servers, SQL servers, users, permission settings and so on. Searching between them, how could this be possible to achieve. Unless, you choose to migrate different projects to one instance of TFS.
OpsHub Integration Manager supports bi-directional synchronization between a wide variety of systems including Team Foundation Server and Visual Studio Online. It can be used for bi-directional sync between TFS and VSO. For more information please reach out to OpsHub at http://www.opshub.com/main/index.php/company/contactus

Visual Studio Online Local Backup?

I work from a small IT department and I'm pushing to move from our current TFS implementation to Visual Studio Online. My boss who gets the final say is hesitant because "What if Microsoft decides to stop offering the service, without notice, or their servers fail how will we get our code". While I find such a scenario unlikely and the scenario of our TFS server crashing and burning with no backups/bad backups much more likely. I still need to address his concern.
Does anyone know of a way to "backup" a remote TFS implementation? So far the only thing I've come up with is doing a nightly pull of Visual Studio Online and submitting it to a local repo, feels hacky, feels wrong.
Take a look over at the discussion on this StackOverflow question: Is There A Way To Backup Visual Studio Team Services Projects?
Here is Richard's answer:
There's no out of the box backup ability.
Now, if you are only referring to source control, and not work items,
pull requests, builds, test plans or anything else that the service
offers, then I'd suggest you migrate your code over to git.
With git every developer will have a complete copy of the source
repository, including all history and commit comments. From there,
it's a simple task to push the git repository to a different git
hoster (such as bitbucket or github) and make them your new centrally
hosted git repository.
On a historical note, Visual Studio Online at one point offered a data
export for a period of time. You might want to add a vote or three to
this related UserVoice idea to help raise the importance of the
feature with Microsoft.
Side comment: The business risks in using Visual Studio Online will
come from either Microsoft shutting down the Visual Studio Online
service or that the underlying Azure infrastructure has such a
catastrophic failure that your Visual Studio Online account is
unrecoverable. Both of those are extremely low risk, and very likely
lower than the risks you'd have running TFS on-premises, in your own
data centre, unless of course, your infrastructure and staff are
better than Microsoft's :-)
I agree with Richard. Visual Studio Online is not going anywhere :) You can also use tools like OpsHub, TaskTop, and Kovair to setup a two-way synchronization or use the TFS Integration Platform to do the same thing if you really wanted an option. If you are using Git repositories, you can clone the repository into other locations to maintain multiple copies. All of those options take effort.
I posted the same answer to this stackoverflow question.
We developed our own VSO backup tool. We scheduled it as a scheduled task and it runs once a night. It then
just clones all our repositories to disk.
Taken from this blog:
We use the VSO Rest API to query our VSO account and get all the data
we need. Since in VSO you can only have one Team Project Collection,
we retrieve all the team projects of the default collection. Each of
these team projects can have multiple repositories that need to be
backed up. A folder is created for each team project and saved to a
location on disk that can be configured in the app.config. When the
team project folder is created, the task loops over each repository in
the team project and creates folders for each repository.
You can also fork it on GitHub here

What should we use as source control with TFS in Visual Studio(TFS source control plugin or VisualSVN )?

We are planning to use Team Foundation Server, but we need to decide whether to use the Visual Studio Team Foundation Server source control plugin or the VisualSVN source control plugin inside Visual Studio.
If you plan to use TFS, go for the TFS Source Control, feature-wise it's as good as SVN if not better (history is managed the same way, branches too, perfs are better).
But where you get benefits in the TFS Source Control compared with SVN is in the integration with Work Item and the rest of TFS.
When you work on a given Task Work Item you can associate your check-ins (then changeset) with the Task, and it's very powerful because you'll have a more project based view than code view.
The Source Control of TFS is the lowest layer of the ALM Solution, you can avoid using it, but you'll lose a lot of things (integration with Work Item, Continuous Integration, Reports, etc.)
If you are planning to use Team Foundation Server, then use visual studio team foundation server source control plugin.

Can TFS2010 be set up locally in order to use Test Manager but still tie into work items, bugs, & source code residing in a remote TFS2008 instance?

We currently use TFS2008 for our source control, bug tracking, and tasks. The TFS2008 server is located in a remote data center. Locally, we have Visual Studio 2010 installed on the developer's machines. Is there a way to install TFS2010 so that we can run Test Manager but still tie into the work items and source code on the remote 2008 instance/database?
Yes, and No.
First the No - You cant connect work items from two instances of TFS. You cant even connect between two team collections on the same sharepoint server. If you do not realy need this or you can upgrade your TFS 2008 to 2010 then stop reading.
Advanced only
The Yes - If you install a local TFS 2010 instance you can setup a sync between the work items and source control of the TFS 2008 box. Note that this will be hard as the TFS 2008 probably uses the MSF Agile 4.2 template and you would have the MSF Agive 5.0 template on your local TFS 2010. You will need to set up mappings between the Work Item types and a zero mapping for the Work item types that do not exist on the 2008 box (Test Case being one)
To do this you use the TFS Integration Platform which comes with a TFStoTFS Migration tool out of the box, but you will need to setup the mappings. If you had two identical TFS boxes this is not required, but you need to be able to sync both Work Items and Source Control to keep the Attachments and Links in place.
You then check in and associate with work items to your local TFS 2010 which will then sync that change to the remote TFS 2008 box.
Only use this if there are no checkins to the remote box! You will have to resolve conflicts on the server you use to sync if you do just as if you were checking in.

Resources