Thread (77 messages) 77 messages, 22 authors, 2016-06-15

Re: Mercurial 0.4b vs git patchbomb benchmark

From: Matt Mackall <hidden>
Date: 2005-05-02 22:30:37
Also in: lkml

On Mon, May 02, 2005 at 03:02:16PM -0700, Linus Torvalds wrote:

On Mon, 2 May 2005, Bill Davidsen wrote:
quoted
If there is a functional reason to use git, something Mercurial doesn't 
do, then developers will and should use git. But the associated hassles 
with large change size, rather than the absolute size, are worth 
considering.
Note that we discussed this early on, and the issues with full-file 
handling haven't changed. It does actually have real functional 
advantages:

 - you can share the objects freely between different trees, never 
   worrying about one tree corrupting another trees object by mistake.
Not sure if this is terribly useful. It just makes it harder to pull
the subset you're interested in.
 - you can drop old objects.
You can't drop old objects without dropping all the changesets that
refer to them or otherwise being prepared to deal with the broken
links.
delta models very fundamentally don't support this. 
The latter can be done in a pretty straightforward manner in mercurial
with one pass over the data. But I have a goal to make keeping the
whole history cheap enough that no one balks at it.
For example, a simple tree re-linker will work on any mirror site, and
work reliably, even if I end up uploading new objects with some tool that
doesn't know to break hardlinks etc. That can easily be much more than a
10x win for a git repository site (imagine something like bkbits.net, but
got git).
What is a tree re-linker? Finds duplicate files and hard-links them?
Ok, that makes some sense. But it's a win on one machine and a lose
everywhere else.
Whether it is a huge deal or not, I don't know. I do know that the big 
deal to me is just the simplicity of the git object models. It makes me 
trust it, even in the presense of inevitable bugs. It's a very safe model, 
and right now safe is good.
I've added an "hg verify" command to Mercurial. It doesn't attempt to
fix anything up yet, but it can catch a couple things that git
probably can't (like file revisions that aren't owned by any
changeset), namely because there's more metadata around to look at.

I'll probably post an updated version tomorrow, I'm beginning to work
on a git2hg script.

-- 
Mathematics is the supreme nostalgia of our time.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help