all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Prefer Mercurial instead of git
@ 2014-01-03 21:52 Jordi Gutiérrez Hermoso
  2014-01-04 10:11 ` David Kastrup
                   ` (2 more replies)
  0 siblings, 3 replies; 72+ messages in thread
From: Jordi Gutiérrez Hermoso @ 2014-01-03 21:52 UTC (permalink / raw)
  To: Emacs development discussions; +Cc: esr@thyrsus.com

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://





^ permalink raw reply	[flat|nested] 72+ messages in thread
* Re: Prefer Mercurial instead of git
@ 2014-01-06 13:08 grischka
  0 siblings, 0 replies; 72+ messages in thread
From: grischka @ 2014-01-06 13:08 UTC (permalink / raw)
  To: acm; +Cc: emacs-devel

Alan Mackenzie wrote:
> I do wonder if new contributers to projects are ever discouraged by 
> the difficulty of learning git - it must be an order of magnitude 
> more difficult to learn to use effectively than CVS or Mercurial.

FWIW, at http://repo.or.cz/w/tinycc.git we allow pushes for
everybody without registration, and while we had quite some
such contributions we didn't see a single git question on the
mailing list nor any mess in the repo over the years ever.

Beyond that these people almost never seem to write bad patches,
and eventually are lazy to explain what they are doing.  Maybe
by incident, maybe not.

--- grischka




^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2014-01-06 19:33 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-03 21:52 Prefer Mercurial instead of git Jordi Gutiérrez Hermoso
2014-01-04 10:11 ` David Kastrup
2014-01-04 10:20   ` David Engster
2014-01-04 10:33   ` Eric S. Raymond
2014-01-04 13:13   ` Jordi Gutiérrez Hermoso
2014-01-04 13:29     ` David Engster
2014-01-04 14:23     ` David Kastrup
2014-01-04 14:38       ` Jordi Gutiérrez Hermoso
2014-01-04 15:19         ` David Kastrup
2014-01-04 15:24           ` Jordi Gutiérrez Hermoso
2014-01-04 16:51             ` David Engster
2014-01-04 17:16               ` Jordi Gutiérrez Hermoso
2014-01-04 17:31                 ` David Engster
2014-01-04 17:40                   ` Jordi Gutiérrez Hermoso
2014-01-04 18:34                     ` Alan Mackenzie
2014-01-04 19:26                       ` Óscar Fuentes
2014-01-04 20:18                       ` Stefan Monnier
2014-01-05 11:07                     ` Leo Liu
2014-01-04 17:35                 ` Eli Zaretskii
2014-01-04 18:25                   ` Paul Eggert
2014-01-04 20:03                     ` Eli Zaretskii
2014-01-06 12:26                       ` Darren Hoo
2014-01-06 14:58                         ` Stefan Monnier
2014-01-06 17:44                         ` Eli Zaretskii
2014-01-06 19:33                         ` Paul Eggert
2014-01-04 14:40       ` Jordi Gutiérrez Hermoso
2014-01-05 12:17         ` Stephen J. Turnbull
2014-01-05 13:19           ` Jordi Gutiérrez Hermoso
2014-01-05 13:25             ` Florian Weimer
2014-01-05 13:55               ` Jordi Gutiérrez Hermoso
2014-01-05 15:38             ` Óscar Fuentes
2014-01-05 16:18               ` Jordi Gutiérrez Hermoso
2014-01-05 16:41                 ` Eric S. Raymond
2014-01-05 17:09                 ` Óscar Fuentes
2014-01-05 23:26                   ` Jordi Gutiérrez Hermoso
2014-01-06  0:38                     ` Óscar Fuentes
2014-01-06  1:01                       ` Jordi Gutiérrez Hermoso
2014-01-06  0:03                 ` David Kastrup
2014-01-05 17:54             ` Stephen J. Turnbull
2014-01-05 23:03               ` Dov Feldstern
2014-01-05 23:23                 ` Karl Fogel
2014-01-05 23:37                   ` Dov Feldstern
2014-01-06  4:02                     ` Stephen J. Turnbull
2014-01-05 13:56           ` David Kastrup
2014-01-04 14:12 ` Rüdiger Sonderfeld
2014-01-04 16:08   ` Sebastian Wiesner
2014-01-04 16:41     ` Jordi Gutiérrez Hermoso
2014-01-04 18:37       ` David Kastrup
2014-01-04 18:44         ` Alan Mackenzie
2014-01-04 19:04         ` Jordi Gutiérrez Hermoso
2014-01-04 19:30           ` Óscar Fuentes
2014-01-05 16:23             ` Eli Zaretskii
2014-01-05 16:46               ` Eric S. Raymond
2014-01-05 17:03                 ` Eli Zaretskii
2014-01-05 16:52               ` Óscar Fuentes
2014-01-05 17:17                 ` Eli Zaretskii
2014-01-05 17:55                   ` Óscar Fuentes
2014-01-05 18:07                     ` Eli Zaretskii
2014-01-05 18:54                       ` Óscar Fuentes
2014-01-05 21:07                     ` Sean Sieger
2014-01-06  0:12                   ` David Kastrup
2014-01-06  0:21                     ` Rostislav Svoboda
2014-01-06  0:30                       ` Karl Fogel
2014-01-06  2:24                         ` Jay Belanger
2014-01-06 16:51                           ` Karl Fogel
2014-01-06 17:13                             ` Jay Belanger
2014-01-06  3:47                     ` Eli Zaretskii
2014-01-05  3:13         ` Jay Belanger
2014-01-05 17:16       ` Sebastian Wiesner
2014-01-06  0:17         ` David Kastrup
2014-01-05  2:14 ` Karl Fogel
  -- strict thread matches above, loose matches on Subject: below --
2014-01-06 13:08 grischka

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.