Why did Git beat Mercurial

Specific Reasons for Using Subversion? [closed]


From today's perspective, this question does not fit our Q&A format. We expect the answers to be supported by fact, reference, or expertise, but this question is likely to spark debate, argument, vote, or expanded discussion. If you think this question can be improved and possibly reopened, get help.
Closed 7 years ago.

I want to choose a version control system for my company. As far as I know, I have Git, Subversion, and Mercurial.

Nowadays I see Git being used the most. So I wonder if there is a specific reason for continuing to use Subversion or should I go straight to Git.






Reply:


SVN is not dead at all. It is still very common and will soon stop being used everywhere. SVN is much easier to use than distributed version control, especially if you don't have a distributed project To run , for the a distributed version control is required.

If you only have one central repository (that's all your business needs when it's small enough to be without source control), using SVN to interact with the repository is a lot easier. For example, with SVN you can pull changes from the repository or commit your local changes to it with a single operation, while HG and Git take two or three steps to do the appropriate work.

And with the recent revisions, SVN has fixed a lot of performance issues that made people prefer HG and Git. It's way faster now than it was a few years ago, and there's no good reason to consider HG or Git for your project right now unless you actually need the advanced features of distributed version control.







Client tooling has not yet been mentioned. Sure, you can do anything with a command line script, but user interface integration can be a real productivity boost.

We mainly work with Visual Studio. The integration with the IDE is definitely better with SVN than with Git. This may change in the future, but I would certainly incorporate this into your decision as well as the version control functions.

Like everything else, a version control system is not an end in itself, just a tool to get you where you want to go. Choose the one that will get you there the fastest, depending on your situation.




I am a git fan. Recently I had to admit that one of the drawbacks of Git is identifying versions with hashes that are opposite to svn's version numbers. The version number can be passed on more easily by phone or something.

And that's the only professional I can think of. If you really want to rely on this feature, you can use it in a distributed and / or centralized VCS bazaar. There are tags in Git that can serve this purpose.

Anyway, I couldn't imagine developing without quickly changing branches and hiding. Those two features alone beat SVN, and as far as I remember, the same task required creating an entire tree in separate directories and checking it out to achieve the same goal.

These so-called "extended functions of the distributed version control" are delivered with time and do not have to be learned right from the start. Do not be afraid of them. They are here to help you and not get in your way. And it is no problem to set up a central repository for a DVCS.





SVN makes it easy to check out portions of a repository down to the folder level, while git lets you get the entire repository including all of its history.

Depending on the situation, this can have some advantages for SVN

(This also has some major drawbacks like the hidden ".svn" junk at the top of your folder tree).




"If you have a task that can be done in six hours, is it better to write a tool that does it in 20 minutes, even if it takes six hours to create the tool?"

Distributed version control is another challenge. It requires extensive learning for any developer. When you have the learning buffer for each developer, you should move to a good distributed version control system. Once the learning phase is complete, distributed version control is much better than centralized version control.

Distributed version control seems to be a possibility. It's here to stay for a very long time, it's better that we adjust to it sooner rather than later. I remember the same discussion when SVN was new and people were used to CVS. There have been many arguments for not using SVN, but eventually SVN became the most popular version control system.

If the company is well established in the existing version control system with a lot of source code, moving to a new system is a big deal. However, if the business is small or starting from scratch, moving to a new version control is very easy. However, if you stick to an older version control (in a new setup) you will run into the bottleneck somewhere in the future where you need to plan a version control migration anyway.

I've seen a lot of SVN pro comments, but all of them are more "SVN isn't bad" than "SVN is better". So I would strongly recommend that you choose distributed version control (e.g. Git) for your project.

EDIT Advantages of GIT over SVN

  1. No dedicated server required In fact, both can be used without a server.
  2. Can be developed further without a network connection.
  3. Branch management is a lot easier.
  4. Better support from CI tools like Bamboo

Someone cited tooling (for Visual Studio) as a reason to stick with SVN. http://gitscc.codeplex.com/ has GIT support for Visual Studio.







Is there a specific reason to use Subversion these days?

Aside from the tool support in IDEs (which I don't use) - not really, no. Of course, SVN may be more familiar, but that's about the only reason, and I found both Hg and Git to be very easy (and very quick) to learn.

Yes, there are all these complex guides out there describing how trivial Git is when you understand that branches are just homeomorphic endofunctioners that represent sub-manifolds of a Hilbert space. 1

I do not understand that. But, you know what? It does not matter. You don't have to know about it to use Git.

For the most part, Git and Hg are easy to use and offer decisive advantages over SVN. The elephant in the room naturally branches: branches only work in Git and Hg. In contrast, in SVN they are painful at best and broken at worst (merging several heads).

Naturally can You continue to use SVN. You can continue to use Windows XP. However, the majority of users who have tried both agree that either of the alternatives is vastly superior.


1 Yes i understand this is a joke I believe.






We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.

By continuing, you consent to our use of cookies and other tracking technologies and affirm you're at least 16 years old or have consent from a parent or guardian.

You can read details in our Cookie policy and Privacy policy.