Bazaar-NG vs. Mercurial -- speed comparison

Jan Hudec bulb at
Thu May 18 21:10:43 BST 2006

On Thu, May 18, 2006 at 19:12:00 +0000, Bryan O\'Sullivan wrote:
> John A Meinel <john <at>> writes:
> > First, mercurial use a custom server rather than working off of 'plain'
> > http/sftp.
> It actually works over plain http, though you can't push over HTTP yet.

No, it's not a plain http. It's a mercurial protocol over http and requires
mercurial server. This is a problem because most free webspace providers
won't let you run a python cgi on the server.

Bzr works even in that case. At the cost that the access is a lot less
optimized and therefore quite a bit slower.

> > This does give it a huge latency advantage. It has some
> > drawbacks, as in it is another thing that needs to be setup, holes
> > opened in firewalls, etc.
> We tunnel over regular ssh, or you can install a CGI script to serve
> over an existing http server on port 80.  Either mechanism takes about
> two minutes to set up and debug.

Ok, when you have an ssh connection you can probably run your programs there.
But eg. my friend still has a server running on woody, where latest installed
python is 2.1. Setting up mercurial is a matter of 2 minutes -- but setting
up python2.3 is not.

> > I should revisit my
> > performance testing with knits.
> My performance tests were run using knits.
> > Mercurial has used 'revfiles' for a long
> > time, which are very similar to knits.
> The only similarity is that both are append-only.  Revlog files do not
> represent a weave, while knits do.  I suspect that you have to read an entire
> knit file to reconstruct the most recent revision, while a revlog file has
> a small upper bound on the amount of data you have to read to reconstruct
> any revision.

Knits certainly DON'T have to be read in entirety to reconstruct a version.
What I don't know is how knits and revlogs compare in number of blocks in the
scatter/gather read request.

> > (Also, on one of my
> > production servers, I don't install gcc, which makes mercurial difficult
> > to install, and it is where I host some repositories)
> Most people install Mercurial and Bazaar-NG from binary packages, though,
> so this is not an issue for either in practice.

Servers are usually not upgraded as often as desktops. Which means they often
run distributions older than a reasonable version of mercurial. Which means
there may be no binaries compiled against old enough libraries.

						 Jan 'Bulb' Hudec <bulb at>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : 

More information about the bazaar mailing list