On Mon, Jan 30, 2017 at 11:00 PM, Stefan Saasen <ssaasen@xxxxxxxxxxxxx> wrote: > > Bitbucket recently added support for Mercurial’s clonebundle extension > (http://gregoryszorc.com/blog/2015/10/22/cloning-improvements-in-mercurial-3.6/). > Mercurial’s clone bundles allow the Mercurial client to seed a repository using > a bundle file instead of dynamically generating a bundle for the client. ... > Prior art > ~~~~~~~~~ > > Our proof-of-concept is built on top of ideas that have been > circulating for a while. We are aware of a number of proposed changes > in this space: > > > * Jeff King's work on network bundles: > https://github.com/peff/git/commit/17e2409df37edd0c49ef7d35f47a7695f9608900 > * Nguyễn Thái Ngọc Duy's work on "[PATCH 0/8] Resumable clone > revisited, proof of concept": > https://www.spinics.net/lists/git/msg267260.html > * Resumable clone work by Kevin Wern: > https://public-inbox.org/git/1473984742-12516-1-git-send-email-kevin.m.wern@xxxxxxxxx/ I think you missed the most common deployment of prior art, which is Android using the git-repo tool[1]. The git-repo tool has had clone.bundle support since Sep 2011[2] and the Android Git servers have been answering /clone.bundle requests[3] since just before that. The bundle files are generated with `git bundle create` on a regular schedule by cron. [1] https://gerrit.googlesource.com/git-repo/+/04071c1c72437a930db017bd4c562ad06087986a/project.py#2091 [2] https://gerrit.googlesource.com/git-repo/+/f322b9abb4cadc67b991baf6ba1b9f2fbd5d7812 [3] https://android.googlesource.com/platform/frameworks/base/clone.bundle > Whilst the above mentioned proposals/proposed changes are in a similar > space, I would be interest to understand whether there is any > consensus on the general idea of supporting static bundle files as a > mechanism to seed a repository? I don't think we have a consensus on how to advertise a bundle file is available, which is why there are so many instances of prior art. In 2011 I just threw together /clone.bundle on HTTP because it was easy to make the Python wrapper ask for the file and handle 404 gracefully as not found and fall back to `git clone`.