git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Felipe Contreras" <felipe.contreras@gmail.com>
To: "Jakub Narebski" <jnareb@gmail.com>
Cc: git@vger.kernel.org, mercurial@selenic.com
Subject: Re: [VOTE] git versus mercurial (for DragonflyBSD)
Date: Sun, 26 Oct 2008 17:57:21 +0200	[thread overview]
Message-ID: <94a0d4530810260857u7c0cb122g8147b9484108f539@mail.gmail.com> (raw)
In-Reply-To: <m3r663h276.fsf@localhost.localdomain>

On Sun, Oct 26, 2008 at 4:15 PM, Jakub Narebski <jnareb@gmail.com> wrote:
> [Cc: gmane.comp.version-control.git,
>     gmane.comp.version-control.mercurial.general]
>
> walt <w41ter@gmail.com> writes:
>
>> No, no, I'm not the one calling for a vote.  You old-timers here
>> will know the name Matt Dillon, who is leading the dragonflybsd
>> project (www.dragonflybsd.org).
>>
>> Matt is the one who is calling for the vote in his thread "Vote
>> for your source control system" in the dragonfly.kernel group,
>> accessible via nntp://nntp.dragonflybsd.org.
>>
>> I've already cast my vote for git, which I confess is not very
>> honest because I've never even tried mercurial.  I would truly
>> be grateful to anyone here who knows both git and mercurial who
>> could contribute verifiable facts to that debate.

<snip/>

> 3. Repository design and performance.
>
>   Git is designed around idea of content adressed object database;
>   objects are adressed by their content (by SHA-1 of their type and
>   content).  Commits for example have information about author and
>   comitter, pointer to zero or more parent commits, and pointer to
>   tree object (representing top directory in project).  Branches
>   and tags are just pointers to DAG (Direct Acyclic Graph) of
>   commits; current branch is denoted by HEAD pointer to branch.
>   There is explicit staging area called 'index', used for conflict
>   resolution dureing merges, and which can be used to make commit in
>   stages, allow uncomitted changes in tree (in working directory).
>   Git design supports very well multiple branches in single
>   repository, and tracking changes in multiple remote repositories
>   each with multiple branches.
>
>   Mercurial, from what I have read of its documentation, and from the
>   few discussion on #revctrl IRC channel, and from what I understand
>   is based on changes stored per file, with information about files
>   and their versions stored in manifest (flat) file, and with changes
>   described in changelog-like file (changerev).  One of limitations
>   of "record" database (as opposed to Git's object database) is that
>   commits can have zero (root commit), one or two (merge commits)
>   parents only.  There is apparent in design that Mercurial was
>   developed with single branch per repository paradigm in mind.
>   Local branches from what I understand are marked in CVS-like
>   fashion using tags.  Tags are implemented as either local to
>   repository and untransferable, or as .hgtags versioned file with
>   special case treatment.  (But I'm obviously biased here).
>
>   Git and Mercurial have similar performance, although it is thought
>   that due to design Mercurla has faster patch applying and is
>   optimized for cold cache case, while Git has faster merging and is
>   optimized for warm cache case.
>
>   Mercurial may have (or had) problems with larger binary files, from
>   what I have heard.

The fact that hg is changeset based means that certain operations are
slower, like checkout a specific commit. In hg my bet is you would
need to gather a bunch of changesets while in git the operation is
done in a single step.

It also means that bare clones are not possible in hg, or at least
very complicated.

Note: I'm not sure if what I'm claiming is correct.

-- 
Felipe Contreras

  parent reply	other threads:[~2008-10-26 15:58 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
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 [this message]
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=94a0d4530810260857u7c0cb122g8147b9484108f539@mail.gmail.com \
    --to=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --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).