From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jordi =?ISO-8859-1?Q?Guti=E9rrez?= Hermoso Newsgroups: gmane.emacs.devel Subject: Prefer Mercurial instead of git Date: Fri, 03 Jan 2014 16:52:32 -0500 Message-ID: <1388785952.11337.16.camel@Iris> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1388818988 6623 80.91.229.3 (4 Jan 2014 07:03:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 4 Jan 2014 07:03:08 +0000 (UTC) Cc: "esr@thyrsus.com" To: Emacs development discussions Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jan 04 08:03:16 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VzLGO-0002v1-1K for ged-emacs-devel@m.gmane.org; Sat, 04 Jan 2014 08:03:16 +0100 Original-Received: from localhost ([::1]:53406 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzLGN-0001aD-N6 for ged-emacs-devel@m.gmane.org; Sat, 04 Jan 2014 02:03:15 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34650) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzCfY-0003Me-Cs for emacs-devel@gnu.org; Fri, 03 Jan 2014 16:52:44 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VzCfU-0004KU-6n for emacs-devel@gnu.org; Fri, 03 Jan 2014 16:52:40 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35436) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzCfU-0004KQ-2e for emacs-devel@gnu.org; Fri, 03 Jan 2014 16:52:36 -0500 Original-Received: from beast.bic.mni.mcgill.ca ([132.206.178.199]:56711 helo=[IPv6:::1]) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1VzCfT-0007OI-8u; Fri, 03 Jan 2014 16:52:35 -0500 X-Mailer: Evolution 3.4.4-3 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-Mailman-Approved-At: Sat, 04 Jan 2014 02:03:14 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:167256 Archived-At: 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://