When considering git vs svn for work projects, is Mercurial best of both worlds?
Lately I’ve been searching for the best source control technologies for my work projects. I’ve been a subversion user for a while, but heard more and more about git. So I checked it out, and I very much liked the fact that it allows you to easily put your projects under source control, even offline, when you don’t have access to a server.
However in multiple programmer environments (for instance at work) the idea of a central server still has its benefits.
That’s when I came across Mercurial, this seems to me to be the best of both worlds, since you can just put your project under source control offline, you can pull push to other people if they put up a webserver, but you can also use a central server to push to and pull from..
Combine that with the fact that something like bitbucket.com gives you the chance to start a private free repository online..
So am I right in my thinking, or are there some important subtleties with these source control systems in a work environment that I fail to grasp?
4 Solutions collect form web for “When considering git vs svn for work projects, is Mercurial best of both worlds?”
You are missing something – git also allows you to have a central server. And github provides the same sort of facilities as bitbucket. Having said that, I think that that Mercurial is a better choice than git for someone starting out in version control, as it is somewhat easier to use, less complex and (for new users at least) its documentation is less intimidating.
Also, you don’t say what platform(s) you use, but currently the Mercurial user interface on Windows has a distinct edge over git.
As Neil already mentioned there is nothing stopping you in having a central server for git.
In my experience mercurial is easier to grasp than git, and getting starting is very easy. Some argue that git is more powerful. Whether that is actually true I leave for you to discover yourself.
What you should take into consideration is that neither git or mercurial have the same type of user authentication as SVN. There are however multiple ways to solve that problem (using SSH, HTTP, …)
To answer your question, I believe so.
I use mercurial for all my mercurial, git and subversion repository access. I use a mercurial extension called hg-git http://hg-git.github.com/ to work with git repositories; mainly on github. Mercurial has a few ways to work with subverion, but ultimately I have converted those svn repos and not needed to do anything more.
As far mercurial alone being great, it is. But mostly it’s great because dvcs is great. If you can, use them both (git, hg) for a while and try to best understand them. You can’t go wrong with choosing git or hg.
Well, I would say you should check this out. It is getting used by some really big projects like OpenJDK, Nuxeo, NetBeans, OpenOffice,OpenSolaris, jMaps, RabbitMQ etc.
I have been using Bitbucket/Mercurail from last few years and I am extremely happy with it.