Features Download
From: Jordi =?ISO-8859-1?Q?Guti=E9rrez?= Hermoso <jordigh <at> octave.org>
Subject: Prefer Mercurial instead of git
Newsgroups: gmane.emacs.devel
Date: Friday 3rd January 2014 21:52:32 UTC (over 3 years ago)
Please CC me in replies as I am not subscribed to this list.

I know a majority opinion lies with git due to various cultural
factors. I would, however, want to make a case for Mercurial being a
better choice for a GNU package.

Mercurial (hereafter, hg) is technically no less capable than git. It
is fast[1], featureful[2], and actively developed[3]. Technically
speaking, Mercurial is a great choice. As far as Emacs development
goes, I know magit makes a strong case for git, but there's no reason
why magit couldn't abstract away its backend and present the same UI
for git as for hg. They are almost equal on a purely technical level,
sometimes hg besting git for some features, sometimes git taking the
lead. Moreover, hg is frequently touted as being more approachable
than git[4]. We have been successfully using hg for Octave development
for the past few years, and we are very happy with it. It works very
well for us.

My main argument in favour of hg is not technical, but rather social.
For GNU, I think it is far more important to support a project that
aligns with GNU's aims, and I find git's GPLv2-only license to be a
disadvantage when contrasted with hg's GPLv2-or-later. For example,
this makes it more awkward to combine git with AGPL code, which is
something that we reasonably might want to do for web front-ends.
GPLv3 and AGPL have mutual cross-compatibility clauses with each
other, but AIUI, GPLv2-only and AGPL don't.

I also think that Matt Mackall (mpm), hg's very active lead dev, has a
friendlier position towards GNU than git's maintainers do. As a
result, hg itself is a strong defender of free software, they take
active steps to enforce the GPL, and made steps towards moving to
GPLv2+ whereas git is not going to do so. I think as a very prominent
GNU package, Emacs would do well to offer a nod to an equally
technically capable DVCS that is more aligned with GNU's goals.

Besides, I think mpm is an Emacs user himself. I think he'd be
pleased. :-)

- Jordi G. H.

[1] http://draketo.de/proj/hg-vs-git-server/test-results.html#results

    Mercurial is also faster than git at one of the frequent
    criticisms against bzr: slow clones. Try it yourself on gnulib and
    its hg mirror:

     $ time hg clone http://hg.savannah.gnu.org/hgweb/octave/gnulib-hg/
     $ time git clone http://git.savannah.gnu.org/gitweb/?p=gnulib.git

    These two are on exact the same server, so at least for this repo,
    this is a fair comparison of speed of hg vs git.

[2] http://mercurial.selenic.com/wiki/UsingExtensions#Extensions_bundled_with_Mercurial

[3] https://www.ohloh.net/p/mercurial/commits/summary

[4] http://programmers.stackexchange.com/questions/87217/why-is-mercurial-considered-to-be-easier-than-git

[5] https://
CD: 2ms