[PATCH 04 of 15] streamclone: define first iteration of version 2 of stream format

Augie Fackler raf at durin42.com
Fri Jan 19 15:54:39 EST 2018


On Fri, Jan 19, 2018 at 09:08:48PM +0100, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld at octobus.net>
> # Date 1516232936 -3600
> #      Thu Jan 18 00:48:56 2018 +0100
> # Node ID 4ee91fb55e208e8b139595ce9c2cae25aa9c54ea
> # Parent  b80a8e39ac9bf984c25a666bd7f6c47d876d26af
> # EXP-Topic b2-stream
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 4ee91fb55e20
> streamclone: define first iteration of version 2 of stream format

This is a good start of a series, but:

1) patch 3 is begging for doctests on the varint scheme

2) This patch should probably include help/internals/ documentation on
   the format, rather than only encoding it in a docstring

3) Patches that claim to be a big performance win, but don't include
   any concrete testing numbers.

I think at this point we're going to admit defeat in the name of
getting an RC release done before I go to bed tonight. Performance
information I'd like to see in any v3 of this series:

1) comparison between the new streaming clone and the existing one on small repos

2) comparison on a medium repo with few branches (the hg repo could be good for this)

3) comparison on a large repo with many heads (might need to use contrib/synthrepo to make something for this?)

4) comparison on a large repo with many named branches (pypy?)

5) comparison on mozilla-central

I'm gathering that this is important work for you all for an important
client or set of clients, and I'm sorry we're not going to manage it
today. In the future, you could potentially sidestep some of this
frustration by giving people a heads up earlier than a
performance-critical 14 patch series with a new wireproto format.


More information about the Mercurial-devel mailing list