From: Jakub Narebski <jnareb@gmail.com>
To: "Arne Babenhauserheide" <arne_bab@web.de>
Cc: git@vger.kernel.org, mercurial@selenic.com, SLONIK.AZ@gmail.com
Subject: Re: [VOTE] git versus mercurial (for DragonflyBSD)
Date: Mon, 27 Oct 2008 19:01:48 +0100 [thread overview]
Message-ID: <200810271901.48925.jnareb@gmail.com> (raw)
In-Reply-To: <200810271512.26352.arne_bab@web.de>
On Mon, 27 Oct 2008, Arne Babenhauserheide wrote:
> Am Monday 27 October 2008 13:48:38 schrieben Sie:
>>> All in all it's a UI issue - while the git UI bit me quite often, the
>>> Mercurial UI just works.
>>
>> But _that_ might be because you are used to Mercurial UI, isn't it?
>
> I rather think it is because I was used the Subversion UI before I tried git
> and Mercurial.
I think Mercurial UI is more compatibile with Subversion UI than Git;
additionally Mercurial uses separate, different names to avoid
ambiguities: examples are 'hg rollback' and 'hg backout' for commands
which various SCM name reset and revert, sometimes referring to one
and sometimes to the other.
AFAIK Git mostly follows BitKeeper UI; it is quite natural as it was
meant as replacement for BitKeeper for Linux kernel development.
[...]
> Also, Mercurial is Python based with quite readable code and it's very easy to
> create extensions for new uses, when I need them.
>
> If you know Python, creating a new Mercurial extension isn't harder than
> creating a shell chain command for git, but it feels much cleaner and is
> nicely integrated once it's done. You can even change the operation of basic
> commands very easily without having to touch any existing code.
There are advantages and disadvantages to each method.
Git was developed in true Unix tools style, as described in TAOUP i.e.
"The Art of UNIX Programming" by ESR (http://catb.org/esr/writings/taoup/html/)
In "Programming Pearls" by Jon Bentley there is in one of chapters
description of prototyping 'spell' using ready UNIX tools, pipelines,
and a few of custom tools, to examine the needs of 'spell'.
One of the consequences of this type of design is that there isn't
(yet?) something like git library; this is caused by the fact that
tools (plumbing) that make up git are designed to run once, and let
operating system take care of freeing resources.
On the other hand clean and clear design of git repository made it
possible to create native Git (re)implementation in Java: the JGit
project. (Well, Git is GPLv2 and JGit/Egit is BSD 3-clause/EPL, so
reimplementation might have been needed for licensing purposes anyway.
Well, it is not _full_ implementation yet...
Besides is writing plugin in Python for Mercurial that much easier
than writing new command or stuff in C for Git? Well, perhaps it is,
as only recently there began to appear API documentation, and there
were created utility mini-libraries like strbuf, or string_list,
or parseopt.
Also often third-party projects or stuff in contrib gets incorporated
into git proper; sometimes stuff is moved from git core to contrib,
if there is no maintainer however (git-svnimport, git-p4import).
Git repository has many roots: one from git core, one with gitk
(graphical history viewer), one from what was git mail tools, one
with gitweb (web interface), and one with git-gui (graphical commit
tool).
The extending via plugins idea used by Mercurial, so succesfull IMHO
for Firefox, and I think quite successfull for ikiwiki for example, is
not without drawbacks, especially that there is no plugins clearinghouse,
and plugins are required for what is considered pretty required
functionality, like bisect before hg 1.0.
See also blog post on vcscompare: "Plugins In Version Control"
http://vcscompare.blogspot.com/2008/06/plugins-in-version-cotnrol.html
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2008-10-27 18:03 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-26 4:28 [VOTE] git versus mercurial walt
2008-10-26 14:15 ` [VOTE] git versus mercurial (for DragonflyBSD) Jakub Narebski
2008-10-26 14:30 ` Maxim Vuets
2008-10-26 15:05 ` Leo Razoumov
2008-10-26 18:55 ` Jakub Narebski
2008-10-27 0:20 ` Arne Babenhauserheide
2008-10-27 4:15 ` Leo Razoumov
2008-10-27 7:16 ` Arne Babenhauserheide
2008-10-27 7:16 ` dhruva
2008-10-27 0:47 ` Arne Babenhauserheide
2008-10-27 1:52 ` Jakub Narebski
2008-10-27 7:50 ` Arne Babenhauserheide
2008-10-27 9:41 ` Jakub Narebski
2008-10-27 10:12 ` Leslie P. Polzer
2008-10-27 10:14 ` Arne Babenhauserheide
2008-10-27 12:48 ` Jakub Narebski
[not found] ` <200810271512.26352.arne_bab@web.de>
2008-10-27 18:01 ` Jakub Narebski [this message]
2008-10-27 20:48 ` Arne Babenhauserheide
2008-10-27 21:07 ` Miklos Vajna
2008-10-27 21:30 ` Arne Babenhauserheide
2008-10-28 0:13 ` Miklos Vajna
2008-10-28 17:48 ` Andreas Ericsson
2008-10-28 19:11 ` Arne Babenhauserheide
2008-10-28 19:38 ` SZEDER Gábor
2008-11-06 16:25 ` Marcin Kasperski
2008-11-06 17:41 ` Isaac Jurado
2008-10-28 19:16 ` Randal L. Schwartz
2008-10-27 23:25 ` Jakub Narebski
2008-10-27 9:29 ` Benoit Boissinot
2008-10-27 10:57 ` Jakub Narebski
2008-10-27 14:29 ` 0000 vk
2008-10-27 14:57 ` Jakub Narebski
[not found] ` <1225100597.31813.11.camel@abelardo.lan>
2008-10-27 11:42 ` David Soria Parra
2008-10-27 20:07 ` Brandon Casey
2008-10-27 20:37 ` Jakub Narebski
2008-10-28 1:28 ` Nicolas Pitre
2008-10-26 15:57 ` Felipe Contreras
2008-10-26 19:07 ` Jakub Narebski
2008-10-26 19:54 ` Felipe Contreras
2008-10-28 12:31 ` [VOTE] git versus mercurial walt
2008-10-28 14:28 ` Johannes Schindelin
2008-10-28 14:41 ` Git/Mercurial interoperability (and what about bzr?) (was: Re: [VOTE] git versus mercurial) Peter Krefting
2008-10-28 14:59 ` Johannes Schindelin
2008-10-28 15:02 ` Git/Mercurial interoperability (and what about bzr?) Matthieu Moy
2008-10-28 15:03 ` Git/Mercurial interoperability (and what about bzr?) (was: Re: [VOTE] git versus mercurial) Nicolas Pitre
2008-10-28 15:33 ` Pieter de Bie
2008-10-28 19:12 ` Miklos Vajna
2008-10-28 21:10 ` Miklos Vajna
2008-10-28 21:31 ` Theodore Tso
2008-10-28 23:28 ` Miklos Vajna
2008-11-01 8:06 ` Git/Mercurial interoperability (and what about bzr?) Florian Weimer
2008-11-01 10:03 ` Santi Béjar
2008-11-01 10:33 ` Jakub Narebski
2008-11-01 10:44 ` Florian Weimer
2008-11-01 11:10 ` Florian Weimer
2008-11-01 12:26 ` Jakub Narebski
2008-11-01 13:39 ` Theodore Tso
2008-11-01 17:51 ` Linus Torvalds
2008-11-02 1:13 ` Theodore Tso
2008-11-01 10:16 ` Git/Mercurial interoperability (and what about bzr?) (was: Re: [VOTE] git versus mercurial) Peter Krefting
2008-10-29 19:11 ` [VOTE] git versus mercurial Shawn O. Pearce
2008-10-29 19:36 ` Boyd Lynn Gerber
2008-10-29 19:48 ` Johannes Schindelin
2008-10-29 19:51 ` Boyd Lynn Gerber
2008-10-29 8:15 ` Miles Bader
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200810271901.48925.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=SLONIK.AZ@gmail.com \
--cc=arne_bab@web.de \
--cc=git@vger.kernel.org \
--cc=mercurial@selenic.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).