From: Junio C Hamano <gitster@pobox.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: "Shawn O. Pearce" <spearce@spearce.org>,
Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: resumable git-clone?
Date: Wed, 08 Aug 2007 12:09:51 -0700 [thread overview]
Message-ID: <7vlkcl4zcw.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <Pine.LNX.4.64.0708081012110.14781@racer.site> (Johannes Schindelin's message of "Wed, 8 Aug 2007 10:14:28 +0100 (BST)")
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> Now here is a thought: after an interrupted fetch, you could do a
> (possibly expensive) analysis what commits are dangling, but do not
> contain broken links in their _complete_ history. Then mark them as
> (temporary) refs.
That's all too elaborate and sounds fairly expensive.
I think another practical solution is to reduce the need to
resume git-clone, and I foresee a nice side effect.
Let's talk a bit about the side effect first. Often I see
people wondering...
- I am forking off of somebody's big project;
- I want to publish the result of _my_ part of the work;
- I cannot afford the diskspace nor the bandwidth at the
hosting service to offer the whole project, but my own work
on top of the upstream is small enough;
So I've been thinking about teaching the server side, when
responding to a fetch request, to be able to say something like
"Sorry but this repository is for fetching by people who have at
least these commits from that other project I am a fork of."
We make that "at least these from that other project" part
machine readable, and git-fetch request git-clone makes can
redirect itself to fill the prerequisites before attempting to
go there again.
And one way of doing that "at least these commits" part could be
a pre-built, well known bundle. The bulk of the older history
of a repository insanely large for your bandwidth requirements
could be made to a single bundle [*1*], and distributed from
other places like mirrored HTTP servers, or even from torrent
network. The pre-built bundle does not have to be built too
often. Probably after every other big release would do.
Once we have such a support, cloning from a regular full
repository ove an unreliable connection could fall back on
getting a bundle (a regular repository does not have to refuse
to serve downloaders that do not have the prerequisites, but
it could still suggest that as an alternate method to fall back
on.
[Footnote]
*1* Sheesh. While I was writing this I noticed that the current
'git bundle' is suitable only for incremental sneakernet but
not for this particular use case.
$ git bundle create 2612.bndl v2.6.12
does not work, although
$ git bundle create 2612-2613.bndl v2.6.12..v2.6.13
does. We need to fix this.
next prev parent reply other threads:[~2007-08-08 19:10 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-07 13:23 resumable git-clone? Nguyen Thai Ngoc Duy
2007-08-08 3:59 ` Shawn O. Pearce
2007-08-08 9:14 ` Johannes Schindelin
2007-08-08 19:09 ` Junio C Hamano [this message]
2007-08-08 19:35 ` Johannes Schindelin
2007-08-09 0:01 ` [PATCH] allow git-bundle to create bottomless bundle Junio C Hamano
2007-08-09 0:28 ` Johannes Schindelin
2007-08-09 2:48 ` Mark Levedahl
2007-08-09 5:04 ` Junio C Hamano
2007-08-09 12:32 ` Mark Levedahl
2007-08-08 11:20 ` resumable git-clone? Nguyen Thai Ngoc Duy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vlkcl4zcw.fsf@assigned-by-dhcp.cox.net \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=pclouds@gmail.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).