Bazaar-NG vs. Mercurial -- speed comparison

Bryan O'Sullivan mambo.chicken at gmail.com
Thu May 18 22:09:36 BST 2006


On 5/18/06, John Arbash Meinel <john at arbash-meinel.com> wrote:

> 1) revlog index files are binary chunks of fixed sizes
>    knit index files are ascii text delimited by ':\n'
>
>    We chose this because:
>    a) You can open up a .kndx file in a text editor, which is good while
>       debugging

Right. We have a command called debugindex for that, and a similar
command called debugdata for data files. Also, the new revlogng format
interleaves index and data for small files, which is a big space win.

>   c) mercurial uses a binary delta algorithm. I assume this means
>      that it stores deltas that are smaller than one line.

It could, but it actually splits on '\n' right now. It just doesn't
fall over on binary data like regular diff does. It would be easy to
get it to spit out a new chunk once it went over some threshold, but
this has not been a problem in practice.

> (I did some testing about changing
>      the inventory format, and found you could get rather large savings
>      if you were careful about the format and how it interacted with the
>      delta algorithm).

Very much so.

> Just to say, I
> wouldn't be surprised if bzr's knits take 50% more space, but I would be
> surprised if it was >2x.

It looked like about 1.8x to me, but I wasn't going in with a microscope.




More information about the bazaar mailing list