[PATCH 4 of 8] bundle: refactor changegroup prune to be its own function

Durham Goode durham at fb.com
Tue Jun 18 12:37:34 CDT 2013

Unfortunately no. The extension is still in development and isn't publicly
available yet. I'm hopeful that I can open source it for feedback sometime
in Q3 (i.e. between now and September).

The basic gist of the extension is to keep all the filelog history
remotely and fetch it on demand, while keeping the entire changelog and
manifest history locally so most commands don't need to hit the server.
This has several performance benefits on large repositories (clone time,
pull time, rebase/amend time) and I'm treating file revisions as key/value
pairs so it makes caching and storage easier.


On 6/18/13 10:19 AM, "Peter Arrenbrecht" <peter.arrenbrecht at gmail.com>

>Hi Durham, are any details on your shallow repo extension available
>On Fri, May 31, 2013 at 7:19 PM, Durham Goode
><durham at fb.com> wrote:
># HG changeset patch
># User Durham Goode <durham at fb.com>
># Date 1369961473 25200
>#      Thu May 30 17:51:13 2013 -0700
># Node ID 036972b09c16295c000847ba359193858e7b3a4d
># Parent  66c552d6910908070552d1a1c41d729932b8b111
>bundle: refactor changegroup prune to be its own function
>Moving the prune function to be a non-nested function allows extensions to
>control which revisions are allowed in the changegroup. For example, in my
>shallow repo extension I want to prevent filelogs from being added to the
>This also allows an extension to use a filelog implementation that doesn't
>have revlog.linkrev implemented.

More information about the Mercurial-devel mailing list