Thoughts on Mercurial and Git

Brendan Cully brendan at kublai.com
Tue Mar 27 15:41:22 UTC 2007


On Tuesday, 27 March 2007 at 09:08, John Goerzen wrote:
> Hi everyone,
> 
> There's been some interesting discussion lately about Git and Mercurial.
> Ted T'so, a Linux kernel hacker and maintainer of ext2/ext3, uses
> Mercurial for e2fsprogs, but comments about thinking of switching it to
> git here:
> 
> http://tytso.livejournal.com/29467.html
> 
> Ted is a very sensible person that I respect quite a bit, and I think
> he's got some valid points.
> 
> He also commented on my post about why I'm still using Mercurial here:
> 
> http://changelog.complete.org/posts/596-Some-more-git,-mercurial,-and-darcs.html
> 
> again with some valid points.
> 
> His main complaints against Mercurial seem to be:
> 
>  * Difficulty of extending it without using Python
> 
>  * Lack of git-style in-tree branches
>    (I have to say I think hg's in-tree branches don't work for my
>    workflow, either)
>  
>  * Repository size and performance
> 
>  * Future features
> 
> I'm not planning to switch to git anytime soon, but I'm wondering what
> people in this community think about all that.  Personally I think that
> the repo size and performance are "nice to haves" (hg is plenty fast for
> me and nearly as small at git).
> 
> But having the history of each file stored in individual history files
> makes hardlinking the history pretty much useless in some cases.  (Apply
> one change that impacts 50% of the files and 50% of your hardlinks have
> to go away, even if you're just updating a copyright date)

My overlay patch series handles this case nicely. Only the actual
changes are stored, and the original revlogs are consulted for
everything else.

http://hg.kublai.com/mercurial/patches/overlay/

> I also gather that someone is working on the branching problem.

Yes. It still needs a fair amount of cleanup, but proof-of-concept
code lives here:

http://hg.kublai.com/mercurial/patches/localbranch/




More information about the Mercurial mailing list