What is the difference between SVN and TFS?

2

I've always used SVN to version the artifacts but I've changed jobs and the company I'm working on uses TFS to do the versioning and I do not know what this TFS does exactly.

  • What's the difference between them?
  • Advantages and disadvantages.
  • Which is the best?
  • asked by anonymous 15.01.2016 / 13:35

    2 answers

    4

    It does essentially the same thing as SVN does, but in another way. You will have to learn all your flow, your specificities. You can not say everything in a question, but specific questions are welcome.

    It is a more complete product. SVN handles version control only, TFS is an Application Life-cycle Management. He takes care of the whole flow of development. SVN needs ancillary tools, such as bug tickets, to do other tasks. It can, for example, force certain policies on how to proceed with the code being changed. He can have more control (audit) of everything that was done, probably what makes people choose him. But you have less control of what you can do.

    Many of the advantages are based on opinions. Telling which is best is even more so. This is not what we 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 SVN is simpler. In contrast, TFS allows you to use Git that does merge in a simple way.

    I'm not comparing Git with SVN because this has already been done .

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

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

    Other differences are irrelevant to the question since the decision is already made. Nor will I talk about cost, better integration with VS, deployment differences.

    In general, people consider it a solution enterprise and SVN is more community-based. There is nothing wrong with using one or the other. It is a matter of culture of the place where you work. Both are centralized. unlike Git that 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 "political" issues, as always prefer Microsoft products. Some use more for project management features, others for the more centralized form of TFSVC control. Those who like ALM in general but prefer a "more flexible" version control to opt for Git within TFS.

    SVN is a lighter solution. But today many people prefer to use Git alone, without TFS as the lightweight version control.

        
    15.01.2016 / 13:58
    3

    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 central server, more servers of build, deploy, reports, among others. It is included in the MSDN license, more common in companies, ie if you have a Visual Studio license with MSDN, you have a TFS, and it can be used by the entire team. For more detailed licensing details, see Microsoft Visual Studio Licensing . There is also a Community version, for up to 5 users, free to use. SVN is a centralized source code manager, CVCS, and ... only! It does not build, deploy, etc ... That said, it does not make sense to compare directly to each other, so let's compare SVN with the TFS source code version, which contains 2 types. That's right, in TFS you can choose, when creating a Team Project to host the code of your application, between 2 versioners:

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

    Although TFS offers integration with Visual Studio IDE (VS), through Team Explorer (TE), it is not for Visual Studio use only. 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 ... It is a language agnostic, and with Git, it gets 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.

    In addition to the Community version, to test the product without doing any installation, it is possible to use up to 5 users also the SaaS , without cost! It has the same features as TFS on-premises . You can start small with this version, and if you need to increase the number of users will be charged for each one you enter.

        
    16.01.2016 / 19:30