Re: Git clonebundles
- From
Shawn Pearce <spearce@spearce.org>
- Date
- Feb 4, 2017, 17:39 UTC
- Message-ID
- <CAJo=hJsS6FmL9iNScaXqkWJumALfGr8Od5QkbfZ+ZG3osxkp7Q@mail.gmail.com>
- In-Reply-To
- <CADoxLGPFgF7W4XJzt0X+xFJDoN6RmfFGx_96MO9GPSSOjDK0EQ@mail.gmail.com>
On Mon, Jan 30, 2017 at 11:00 PM, Stefan Saasen <ssaasen@atlassian.com> wrote:
Show 5 quoted lines
> > 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.
...
Show 15 quoted lines
> 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@gmail.com/
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`.