[PATCH] exchange: allow fallbackheads to use lazy set behavior

Durham Goode durham at fb.com
Tue Sep 8 20:00:15 CDT 2015






On 9/8/15, 4:00 PM, "Pierre-Yves David" <pierre-yves.david at ens-lyon.org> wrote:

>
>
>On 09/07/2015 05:13 PM, Durham Goode wrote:
>> # HG changeset patch
>> # User Durham Goode <durham at fb.com>
>> # Date 1441670915 25200
>> #      Mon Sep 07 17:08:35 2015 -0700
>> # Node ID c595696df8614f58194e210f8b3b1d4c1a25926e
>> # Parent  d72ff051c6c6dee945690b0e5554a0450820e93e
>> exchange: allow fallbackheads to use lazy set behavior
>>
>> The common ancestor set implementation was made lazy a couple years ago, but
>> this piece of code still required processing the entire repo by putting set()
>> around the lazy set. The code was introduced in 5653f2d166ea, a year before the
>> lazy ancestor set was added.
>>
>> Dropping the set() shaves 3.5 seconds off of 'push -r' in repos with hundreds of
>> thousands of commits.
>
>Nice. out of curiousity. 3.5 out of how much?

The client side logic goes from 4.1s to 0.6s.  The server side logic takes 7-10s, so the overall user facing improvement is notable, but not massive.  But now we don't have to worry about the client anymore.

Note: this was with the pushrebase extension enabled, which disables discovery.  Without it enabled, the discovery operation is actually quite expensive (6s or so). I didn't investigate why it was slow.


More information about the Mercurial-devel mailing list