What is the difference between SVN and TFS?

Asked

Viewed 2,200 times

2

I’ve always used SVN to read the artifacts but I’ve moved away from work and the company I’m working for uses TFS to do the versioning and I don’t know what this TFS does exactly.

  1. What’s the difference between them?
  2. Advantages and disadvantages.
  3. Which is the best?

2 answers

4

TFS, Team Foundation Server, is an Application Lifecycle Management platform. Platform because its architecture is distributed, so in the simplest configuration it is possible to have a single server with multiple services running, and in a more complex one a central server, more build servers, deploy, reports, among others. It is included in the MSDN license, most common in companies, that is, if you have a Visual Studio license with MSDN, you have a TFS, and it can be used by the whole team. Further licensing details, see Microsoft Visual Studio Licensing. There is also a Community version, for up to 5 users, for free use. SVN is a centralized source code manager, CVCS, and... only! It does not build, deploy, etc... That being said, it makes no sense to compare one to the other directly, so let’s compare the SVN with the TFS source versioner, which contains 2 types. That’s right, in TFS you can choose, when creating a Team Project to host your application code, between 2 versors:

  • TFVC, Team Foundation Version Control, which is the version that comes from the release version of TFS, previously called only Version Control, it is a CVCS, that is, it is centralized. And it has a disconnected working mode, too! But as it is centralized it is not possible to check in local.
  • Git, which was added in the 2013 version of TFS, so the previous one changed its name, and it’s a DVCS, meaning decentralized, so it allows local commit.

While TFS offers integration with the Visual Studio (VS) IDE through Team Explorer (TE), it is not unique to Visual Studio. There is a version of TE for Eclipse, and it is also possible to use TFS with Deplhi, Python, Ruby, Objectivec and on a Mac, etc... He’s language agnostic, and with Git, he’s integrated with the Objectivec IDE, because you can use the original Git and still communicate with TFS to send code. All other features are in the Web Access portal, so even from a Linux you can use TFS.

Besides the Community version, to test the product without doing any installation, it is possible to use for up to 5 users, also, the version Saas, free of charge! which has the same functionality as TFS on-premises. One can start small with this version, and if it is necessary to increase the number of user will be charged for each one that enters.

4

It does essentially the same thing as SVN does, but in another way. You’ll have to learn all of its flow and specifics. You can’t say everything in one question, but specific questions are welcome.

It is a more complete product, SVN takes care only of version control, TFS is a Life-Cycle Management Application, so it takes care of the entire development flow. SVN needs auxiliary tools like control tickets of bug to do other tasks. It can for example force certain policies on how to proceed with the code being changed. It may have more control (audit) of everything that has been done, probably what makes people choose it, but you have less control than you can do.

Many of the advantages are based on opinions, saying which is best is even more. This we do not do here.

Some say it’s easier to do merge in TFSVC (one of the TFS version control options). I’ve seen reports of nightmares and that SVN is simpler. In compensation TFS allows you to use Git that does the merge simply.

I won’t compare Git to SVN because this has already been made.

The terminology of SVN and TFVC changes a little and the flow may be a little different (check in/check out against commit/update), but essentially version control can be done in the same way.

TFS expected the developer to always be connected to the server, but newer versions improved this. Make sure you’re using a more modern version.

Other differences are irrelevant to the question as the decision is already made. I’m not even going to talk about cost, better integration with VS, deployment differences.

Generally speaking people consider it a more solution Nterprise and the SVN is more community. There’s nothing wrong with using one or the other, it’s a matter of culture where you work. Both are centralized. unlike Git which is decentralized.

It may be that some specific feature of one can be critical to a team. It may be that the choice is made for "policy" issues, as always prefer Microsoft products. Some use more for project management resources, others for the more centralized form of TFSVC control. Those who like ALM in general but prefer a "more flexible" version control opt for Git within TFS.

SVN is a lighter solution. But today many people prefer to use isolated Git without TFS as a lighter version control.

  • Some myths in his answer: TFS doesn’t have to be connected all the time with the developer, both in Git, which is already a DVCS, so I don’t have to; and in TFVC, which works also disconnected, although it doesn’t allow local check-in. TFS also works with other Ide’s or languages other than VS, both Git and TFVC.

  • Do you have any reference to this? All I have say this.

  • You can find information about local Workspance, which allows you to use the TFVC without being logged in, but it is important to note that it is not possible to check in locally, remember it is a CVCS; here https://msdn.microsoft.com/en-us/library/bb892960.aspx#workspace_server_offline and TE information for Eclipse is here https://msdn.microsoft.com/en-us/library/hh913026(v=vs.120).aspx... other platforms, for example, Objectivec uses Git from TFS, and then the instation is Git for Mac, which downloads on the official website https://git-scm.com/ and other features use Web Access.

  • @egomesbrandao you’re right, I gave an improved, see if it is ok now, thank you.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.