git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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`.

Previous: Stefan SaasenNext: Christian Couder
Message 2 of 8 in “Git clonebundles”
  1. Stefan SaasenJan 31, 2017
  2. Shawn PearceFeb 4, 2017
  3. Christian CouderFeb 5, 2017
  4. Junio C HamanoFeb 6, 2017
  5. Johannes SchindelinFeb 7, 2017
  6. Stefan BellerFeb 7, 2017
  7. Junio C HamanoFeb 7, 2017
  8. Johannes SchindelinFeb 8, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.