Tricks for taming large repo manifests and/or improving large repo clone times?

Lawrence Stewart lstewart at room52.net
Thu May 30 08:18:39 UTC 2019


Hi Augie,

On 29/5/19 11:16 pm, Augie Fackler wrote:
> 
> 
>> On May 29, 2019, at 06:28, Lawrence Stewart <lstewart at room52.net> wrote:
>>
>> Greetings all,
>>
>> I maintain unofficial Mercurial seed repos [1] for the FreeBSD project's
>> Subversion base system [2] and ports (non-base-system software) [3]
>> repositories. They have sizable code bases and 20+ year development
>> histories with quite a few active branches, and I'm curious if there are
>> any tricks to make first-time cloning operations non-glacial?
>>
>> The server-side repos have been re-cloned in place to bring them up to
>> the latest on-disk format as of mercurial 4.9 so they've got
>> generaldelta and sparserevlog enabled, yet the manifest remains a beast
>> (see end of email for some stats). A git clone from Github [4] is on the
>> order of 1.5GiB and substantially faster to clone.
>>
>> Am I missing anything obvious that would improve the situation?
> 
> Are you using clonebundles? https://www.mercurial-scm.org/wiki/ClonebundlesExtension talks about it. The extension is used on the server, and clients will handle it automatically if enabled. The basic idea is you pre-compute a bundle of your repo and stick it someplace fast like a CDN and then clients don't have to pull everything from the main server, only what's changed since the bundle was generated.

No, but thanks for the pointer. I was not familiar with the clonebundles
extension.

Cheers,
Lawrence



More information about the Mercurial mailing list