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

Durham Goode durham at fb.com
Fri Jun 21 11:51:05 CDT 2013


I hadn't considered it, but it would be trivial to add a command like 'hg
prefetch -r <revset>' to allow people to fetch certain chunks of the repo.
 Good idea.

Right now I keep a local cache of the information you've touched recently.
 So you can work offline amongst your existing local commits and any
server commit that you've updated to recently.  I'll have to play around
with the prefetch and eviction policies to get the best user experience,
but being able to continue working while the server is down is definitely
a priority.

Durham

On 6/21/13 5:21 AM, "Peter Arrenbrecht" <peter.arrenbrecht at gmail.com>
wrote:

>Interesting. Are you considering a mode where folks can explicitly say
>they want everything locally that descends from a specific set of
>revisions? Then it would not only help performance but also help folks
>who want to work offline on a large
> repo.
>--peter
>
>
>
>On Tue, Jun 18, 2013 at 10:37 AM, Durham Goode
><durham at fb.com> wrote:
>
>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.
>
>Durham
>
>On 6/18/13 10:19 AM, "Peter Arrenbrecht" <peter.arrenbrecht at gmail.com>
>wrote:
>
>>Hi Durham, are any details on your shallow repo extension available
>>somewhere?
>>
>>
>>Thanks,
>>--peter
>>
>>
>>
>>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
>>bundle.
>>
>>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