From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 0/8] Resumable clone revisited, proof of concept
Date: Fri, 5 Feb 2016 15:57:49 +0700 [thread overview]
Message-ID: <1454662677-15137-1-git-send-email-pclouds@gmail.com> (raw)
I was reminded by LWN [1] about this. Annoyed in fact because it's
called a bug while it looks more like an elephant. So let's see if we
can agree this is a good way to go.
This is the stable pack approach. The client initiates "resumable
mode" and forces the server to generate a resumable, even though less
efficient, pack. Compared to the "download from a cached bundle first"
approach, this requires no extra setup for caching. But it wastes more
cpu.
The UI is not there yet, and you can only resume a fetch, not a clone.
What remains to do are:
- Add UI to "git fetch" to retry
- Make "git clone" use "git fetch --resume" to get the pack
[1] Quote from https://lwn.net/Articles/674392/ "she noted that Git
still does not support interrupting and resuming download operations,
which is an important bug to fix."
Nguyễn Thái Ngọc Duy (8):
pack-objects: add --skip and --skip-hash
pack-objects: produce a stable pack when --skip is given
index-pack: add --append-pack=<path>
upload-pack: new capability to pass --skip* to pack-objects
fetch-pack.c: send "skip" line to pack-objects
fetch: add --resume-pack=<path>
index-pack: --append-pack implies --strict
one ugly test to verify basic functionality
Documentation/technical/pack-protocol.txt | 2 +
Documentation/technical/protocol-capabilities.txt | 9 ++++
builtin/fetch-pack.c | 4 ++
builtin/fetch.c | 5 +++
builtin/index-pack.c | 52 ++++++++++++++++++++++-
builtin/pack-objects.c | 26 ++++++++++++
csum-file.c | 52 +++++++++++++++++++++--
csum-file.h | 3 ++
fetch-pack.c | 40 +++++++++++++++++
fetch-pack.h | 3 ++
remote-curl.c | 8 +++-
t/t5544-fetch-resume.sh (new +x) | 42 ++++++++++++++++++
transport.c | 4 ++
transport.h | 4 ++
upload-pack.c | 30 ++++++++++++-
15 files changed, 275 insertions(+), 9 deletions(-)
create mode 100755 t/t5544-fetch-resume.sh
--
2.7.0.377.g4cd97dd
next reply other threads:[~2016-02-05 8:58 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-05 8:57 Nguyễn Thái Ngọc Duy [this message]
2016-02-05 8:57 ` [PATCH 1/8] pack-objects: add --skip and --skip-hash Nguyễn Thái Ngọc Duy
2016-02-05 9:20 ` Johannes Schindelin
2016-02-05 8:57 ` [PATCH 2/8] pack-objects: produce a stable pack when --skip is given Nguyễn Thái Ngọc Duy
2016-02-05 18:43 ` Junio C Hamano
2016-02-05 23:25 ` Duy Nguyen
2016-02-06 0:48 ` Junio C Hamano
2016-02-08 5:23 ` Duy Nguyen
2016-02-05 8:57 ` [PATCH 3/8] index-pack: add --append-pack=<path> Nguyễn Thái Ngọc Duy
2016-02-05 8:57 ` [PATCH 4/8] upload-pack: new capability to pass --skip* to pack-objects Nguyễn Thái Ngọc Duy
2016-02-05 9:18 ` Johannes Schindelin
2016-02-05 8:57 ` [PATCH 5/8] fetch-pack.c: send "skip" line " Nguyễn Thái Ngọc Duy
2016-02-07 8:57 ` Eric Sunshine
2016-02-05 8:57 ` [PATCH 6/8] fetch: add --resume-pack=<path> Nguyễn Thái Ngọc Duy
2016-02-05 8:57 ` [PATCH 7/8] index-pack: --append-pack implies --strict Nguyễn Thái Ngọc Duy
2016-02-07 9:02 ` Eric Sunshine
2016-02-05 8:57 ` [PATCH 8/8] one ugly test to verify basic functionality Nguyễn Thái Ngọc Duy
2016-02-05 11:57 ` Elia Pinto
2016-02-05 13:02 ` Duy Nguyen
2016-02-05 13:33 ` Elia Pinto
2016-02-05 13:20 ` Johannes Schindelin
2016-02-05 13:38 ` Elia Pinto
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=1454662677-15137-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.