

Ask HN: Mercurial or git? - rbanffy

For a 50+ people development team working on several different projects, using Windows, Linux and OSX, Eclipse, Dreamweaver, Emacs to write applications in Java, PHP and Python (some Perl thrown in too) that has narrowed down the choice to one of the two mentioned in the question, which one would you pick and why?<p>And yes, this is the company I work for and this will be the DVCS I will have to use. ;-)
======
alfredp
We ended up with mercurial. We needed Windows, Linux, OSX and code in all
kinds of languages.

git is fine I suppose - but we needed to support Windows and I'd rather know
that Windows is supported properly (mercurial), rather than kinda hoping it
works (git). Things might have changed since the last time I looked.

In either case, be careful with case-sensitive/non-sensitive file systems.

Also, consider the learning curve difference as you will suddenly become the
go-to guy for issues.

In the end, I'm really a Bond fan:
[http://importantshock.wordpress.com/2008/08/07/git-vs-
mercur...](http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/)

------
frio
I'd say mercurial will be easier to deploy across that range of systems, and
easier for people not familiar with the command line (Dreamweaver users ;)) to
use.

Personally, I feel that git is technically superior, but throwing Windows into
the mix changes things up a bit. You can use git confidently in Windows - I do
at home, using Cygwin - but in terms of graphical support, it's still
reasonably dodgy. You could definitely look into TortoiseGit, and then
configure it using mSysGit and putty (I've tried this in the past and it works
well) - but if anyone then wants to use Cygwin, things get very complex.

GitX is good for Mac users though!

~~~
sidmitra
Smartgit: <http://www.syntevo.com/smartgit/>

might be worth a look

------
atiw
I would go with mercurial. It just works well with both Windows and Linux (I
don't have a MAC). And like alfred said, hoping is not a good option for you.
I would always go with any tool, that's proven that obscure. Playing around
with it, and testing it is fine if you are a <4 people team. Anything more
than 4, and I think it's time to google "XYZ number of users" and it will show
you stuff.

If you still need more information to be sure, I think I trust these two, esp
recommend the google code link.

<http://code.google.com/p/support/wiki/DVCSAnalysis>

<http://rg03.wordpress.com/2009/04/07/mercurial-vs-git/> This one is a little
balanced. more like a good info on internals of both. A little too long, and I
didn't like the fact that the guy says both are great, in summary. I knew that
already...pick a side if u write a VS article...or else what's the point.....

~~~
rg3
I'm the author of the second one. I don't pick a side because I use both for
different personal projects and haven't made my mind up yet. It's an honest
conclusion and the article is oriented to giving an introduction to someone
who's trying to make a choice. That's the point.

~~~
atiw
Rg3, I went back and had another look.

I take my words back (if that's ever possible :) ).

I assumed the purpose of writing that article as saying I pick this, if pushed
to the corner (as is the case in our startups).

I will have to say it's a fairly good introduction. I like the amount of
details provided.

------
leif
msysgit works well on windows these days, and there are enough mac kids on
github that mac support must be fine too.

As far as I know, git is a bit more flexible than mercurial, in the sense that
each user can use it the way they like to (with things like quilt --- and here
I'm sure someone's going to yell "but mercurial has patch queues by
default!!1"), without screwing up or imposing on everyone else's workflow. I'm
not sure if mercurial does this, but I can't imagine anything doing it better
than git.

That said, they aren't that different I don't think, so I'm sure you'll be
happy either way, and each one will have its own wonkiness that you'll come to
hate eventually.

------
morphir
GIT, because it has the best performance and are backed by large projects like
the Linux kernel, Wine, etc.

May I add that Mercurial has Python dependencies, while git are written in C.

If I were to bet who outlasts who, I would put my money on GIT. Also,
considering GIT is so simple by design, I foresee it will be used in many
other cases than source code management. As it is just a matter of creating
new high level porcelain, like say, revision control. ;) How about that Linus?

~~~
mbrubeck
_"backed by large projects like the Linux kernel, Wine, etc."_

Mercurial is used and backed by large projects like Mozilla, Google Code,
OpenOffice, Solaris, and Python. (In my own opinion, git and mercurial are
both best-of-breed, and I'm a happy user of both tools.)

