1

I am working on Visual Studio projects using Visual Studio Community. I have created local git repositories and remote repositories on https://dev.azure.com.

I want to work with Team Foundation Version Control. I need "Microsoft Team Foundation Server". It seems this product is now called "Azure DevOps Server". Is it the same thing as https://dev.azure.com?

What should I do in order to work with Team Foundation Version Control instead of git?

2 Answers 2

2

Q: "What should I do in order to work with Team Foundation Version Control?"

A: TL'DR: Use the TFS command line client, tf.

? But why use TFVC ?

Azure DevOps is confusingly several products. There is the cloud offering: DevOps Services, formerly known as Visual Studio Team Services, formerly, Visual Studio Online, formerly Team Foundation Service. There is also an On-Premise offering: Azure DevOps Server, formerly known as Team Foundation Server (now 2020, formerly 2019, 2017, 2015, 2013, 2012, 2010, 2018, 2005). They do share a common REST API, albeit the on-prem lags behind.

Aside from the delay in getting features into the on-prem variant, the questions of choosing on-prem or cloud have nothing to do with choosing TFVC vs Git. It likely depends more on cost, infrastructure and people resources, geographic and network constraints.

You can see most of the Product Announcements from the Program Manager here.

From TFS 2005 to 2012, the version control engine was TFVC, a centralized version control tool. Team Foundation Server 2013 added native support as a centralized Git remote host (similar to Github/Gitlab/BitBucket,but on-prem), albeit in separate team projects. TFS 2015 Update 1 (clumsily) allowed hosting both in the same team project.

But, let's get back to today. Since TFS 2015, Microsoft has put very little effort into improving the TFVC side of their offering. It would seem today, they have essentially abandoned it. Team Explorer Everywhere is no longer maintained. In 2016, they open-sourced it. Admittedly, in 2017 they did reintroduce it after a large outcry. The Eclipse client was last updated for Neon release (2016-06). The tfs-plugin for Jenkins has not had a significant release since Mar 2018. On 2020-11-06 (Nov 6, 2020), the Visual Studio Code plugin will be removed from the VS Code Marketplace; users will have to rely on the tf command line.

The Program Manager's first post detailed TFS Usage within Microsoft. Those were last updated in 2013. A few years later, they are now boasting of having the world's largest Git repo and then acquired GitHub.

The basic question you should be asking is Choosing the right version control for your project? Do you want a Centralized model or a Distributed model of version control?

I have a lot (decades) of experience managing Centralized and Distributed version control systems. As MS documents, each have their strengths, weaknesses and trade-offs. But, why would you choose a centralized version control tool that is provided by a vendor that evidently no longer supports it?


PS: Most people visualize Centralized Version Control like this: Centralized VC, from: https://scmquest.com/wp-content/uploads/2014/05/central_vcs.jpg (from: https://scmquest.com/wp-content/uploads/2014/05/central_vcs.jpg)

and Distributed Version Control like this: Distributed VC, from: https://scmquest.com/wp-content/uploads/2014/05/distributed_vcs.jpg (from: https://scmquest.com/wp-content/uploads/2014/05/distributed_vcs.jpg)

But that is really just a "disconnected, centralized model". Git allows for very complex distributed workflows, such as show below. You do not get that flexibility using centralized tools. But it can also be a total nightmare to keep track of what's where.

Complex VC, from: https://howtodoinjava.com/vcs/how-distributed-version-control-system-works (from: https://howtodoinjava.com/vcs/how-distributed-version-control-system-works/)

3
  • I don't think you need an exhaustive list of every software version, even in a parenthetical statement.
    – TylerH
    Sep 18 at 15:01
  • @TylerH, I don't think you need to edit a three year old question, including fundamentally changing the subject line, but maybe that's just me. "Team Foundation Version Control" is not "Git within Azure DevOps host".
    – Ian W
    Sep 19 at 2:00
  • Well, you're wrong then. The question title did not match the question body, which is what the answers addressed. Now, it does! And the issue with your answer that my first comment raised is still unaddressed. See editing for more info on when and why editing of posts is important on Stack Exchange sites.
    – TylerH
    Sep 19 at 13:27
0

First, Azure DevOps is the next release of Team Foundation Server 2018 (on premise) and Visual Studio Team System (on cloud). Therefore, Azure DevOps has two flavors, Azure DevOps Service (on cloud) and Azure DevOps Server (on premise). The latest release of Azure DevOps Server is Azure DevOps Server 2020 that released in this October.

Second, you should not mix TFVC/Git with TFS. TFVC is a centralized source control, was released during the initial release of Team System 2005 (older name of Team Foundation Server). TFVC is also copyright and trade mark of Microsoft. There are other samples of centralized source control such as SVN, CVS, Rational Clear Case.

Git is a distributed source control. Git is open source and it's not owned by any company.

If you want to continue work using TFVC, you can still use TFVC within Azure DevOps Service or Azure DevOps Server. Both of these Azure DevOps products still support TFVC.

For more information, please visit this official docs: https://docs.microsoft.com/en-us/azure/devops/user-guide/source-control?view=azure-devops

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.