Perform clones by fetching a pre-built bundle file.
This extension has effectively been superseded by built-in clone bundles functionality. Server operators should install the official/distributed clonebundles extension to achieve similar functionality.
This extension is not distributed with Mercurial.
Author: Gregory Szorc / Mozilla
Repository: https://hg.mozilla.org/hgcustom/version-control-tools/ (hgext/bundleclone)
When you hg clone with default options, the Mercurial server will dynamically and seemlessly generate a bundle and stream it to the client. This is conceptually equivalent to piping hg bundle into a socket and unbundling at the other end.
Generation of bundles can be computationally expensive and the cost scales in proportion to the size of the repository. For very large repositories, this can put a lot of load on the Mercurial server and can lead to slowness.
The bundleclone extension supplements the built-in clone command and gives servers the opportunity to advertise pre-generated bundle files. Cloning will thus first fetch a pre-generated bundle file, apply it, then perform an incremental pull to obtain changesets not in the bundle.
With the bundleclone extension in place and with high adoption by clients, Mercurial server load for clones drops drastically.
Configure your .hgrc on client and server to enable the extension by adding following lines:
[extensions] bundleclone = /path/to/bundleclone
On the server, you'll also need to create a file in the .hg directory defining what bundles are available. You'll also need to configure a server (HTTP, FTP, etc) where these files can be fetched from. See the comments in bundleclone's init.py for complete docs.