[PATCH 1 of 4 lazy-manifest v2] manifest.c: new extension code to lazily parse manifests

Ryan McElroy rm at fb.com
Wed Jan 14 12:32:02 CST 2015


On 1/12/2015 12:04 PM, Augie Fackler wrote:
> # HG changeset patch
> # User Augie Fackler <augie at google.com>
> # Date 1420871231 28800
> #      Fri Jan 09 22:27:11 2015 -0800
> # Node ID b9d67bf3ea8196c8530afdcf6b1727682b681259
> # Parent  678f53865c6860a950392691814766957ee89316
> manifest.c: new extension code to lazily parse manifests
>
> This lets us iterate manifests in order, but do a _lot_ less work in
> the common case when we only care about a few manifest entries.
>
> Many thanks to Mike Edgar for reviewing this in advance of it going
> out to the list, which caught many things I missed.
>
> This version of the patch includes C89 fixes from Sean Farley and
> many correctness/efficiency cleanups from Martin von
> Zweigbergk. Thanks to both!
>
I went through the deploy process at Facebook but tripped over a number 
of issues:

* hgsubversion tests fail with errors related to lazymanifest
* evolve tests fail with errors related to lazymanifest
* hg-git tests fail for unrelated reasons

So we won't be deploying this immediately, and won't be able to get real 
world testing in. I'd suggest holding off on getting this in before the cut.

That being said, the performance numbers on our big www repo look great, 
especially with some additional caching we're doing here (buildstatus 
and pathcopies are memoized).

~Ryan


More information about the Mercurial-devel mailing list