From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>, "Junio C Hamano" <gitster@pobox.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 0/4] check_everything_connected replacement
Date: Sun, 31 Mar 2013 18:09:04 +0700 [thread overview]
Message-ID: <1364728148-7537-1-git-send-email-pclouds@gmail.com> (raw)
My investigation in lowering connectivity check cost in git-clone [1]
led me to try 'index-pack --strict' code. Without calling fsck_object(),
--strict seems to be cheaper than check_everything_connected() while
accomplishing the same thing (imo).
The first patch is a bug fix running git-clone --depth with
fetch.fsckObjects on. The second is "fix while i'm there". The third
introduces check_everything_connected alternative. The fourth makes
use of it.
The last use of check_everything_connected after this series is
fetch.c:quickfetch(), which I think is unnecessary. It can only catch
errors if we have incomplete object islands in repo, which could
happen before this series. After this series, incomplete object
islands can't enter the repository, at least via git transport. So
maybe we should remove that check_everything_connected too (maybe
after a few years, enough time for the laziest user to run fsck/repack
once).
[1] http://article.gmane.org/gmane.comp.version-control.git/219602
Nguyễn Thái Ngọc Duy (4):
fetch-pack: save shallow file before fetching the pack
index-pack: remove dead code (it should never happen)
index-pack, unpack-objects: add --not-so-strict for connectivity check
Use --not-so-strict on all pack transfer for connectivity check
builtin/fetch.c | 6 ----
builtin/index-pack.c | 10 ++++--
builtin/receive-pack.c | 22 +++----------
builtin/unpack-objects.c | 9 ++++--
fetch-pack.c | 72 +++++++++++++++++++++++------------------
t/t5500-fetch-pack.sh | 7 ++++
t/t5504-fetch-receive-strict.sh | 2 +-
7 files changed, 66 insertions(+), 62 deletions(-)
--
1.8.2.83.gc99314b
next reply other threads:[~2013-03-31 11:09 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-31 11:09 Nguyễn Thái Ngọc Duy [this message]
2013-03-31 11:09 ` [PATCH 1/4] fetch-pack: save shallow file before fetching the pack Nguyễn Thái Ngọc Duy
2013-04-01 14:53 ` Junio C Hamano
2013-04-05 2:11 ` Duy Nguyen
2013-03-31 11:09 ` [PATCH 2/4] index-pack: remove dead code (it should never happen) Nguyễn Thái Ngọc Duy
2013-03-31 11:09 ` [PATCH 3/4] index-pack, unpack-objects: add --not-so-strict for connectivity check Nguyễn Thái Ngọc Duy
2013-03-31 11:09 ` [PATCH 4/4] Use --not-so-strict on all pack transfer " Nguyễn Thái Ngọc Duy
2013-04-01 14:48 ` [PATCH 0/4] check_everything_connected replacement Junio C Hamano
2013-05-01 10:59 ` [PATCH v2 0/5] " Nguyễn Thái Ngọc Duy
2013-05-01 10:59 ` [PATCH v2 1/5] clone: let the user know when check_everything_connected is run Nguyễn Thái Ngọc Duy
2013-05-01 10:59 ` [PATCH v2 2/5] fetch-pack: prepare updated shallow file before fetching the pack Nguyễn Thái Ngọc Duy
2013-05-01 20:27 ` Junio C Hamano
2013-05-02 10:04 ` Duy Nguyen
2013-05-01 10:59 ` [PATCH v2 3/5] index-pack: remove dead code (it should never happen) Nguyễn Thái Ngọc Duy
2013-05-01 10:59 ` [PATCH v2 4/5] index-pack, unpack-objects: add --not-so-strict for connectivity check Nguyễn Thái Ngọc Duy
2013-05-01 23:35 ` Junio C Hamano
2013-05-02 9:53 ` Duy Nguyen
2013-05-02 16:27 ` Junio C Hamano
2013-05-03 2:29 ` Duy Nguyen
2013-05-03 6:33 ` Junio C Hamano
2013-05-03 6:55 ` Junio C Hamano
2013-05-03 7:09 ` Duy Nguyen
2013-05-03 8:16 ` Eric Sunshine
2013-05-01 10:59 ` [PATCH v2 5/5] Use --not-so-strict on all pack transfer " Nguyễn Thái Ngọc Duy
2013-05-03 12:35 ` [PATCH v3 0/4] check_everything_connected replacement Nguyễn Thái Ngọc Duy
2013-05-03 12:35 ` [PATCH v3 1/4] clone: let the user know when check_everything_connected is run Nguyễn Thái Ngọc Duy
2013-05-03 12:35 ` [PATCH v3 2/4] fetch-pack: prepare updated shallow file before fetching the pack Nguyễn Thái Ngọc Duy
2013-05-03 12:37 ` Eric Sunshine
2013-05-07 15:59 ` Junio C Hamano
2013-05-26 1:01 ` Duy Nguyen
2013-05-03 12:35 ` [PATCH v3 3/4] index-pack: remove dead code (it should never happen) Nguyễn Thái Ngọc Duy
2013-05-03 12:35 ` [PATCH v3 4/4] clone: open a shortcut for connectivity check Nguyễn Thái Ngọc Duy
2013-05-03 12:41 ` Eric Sunshine
2013-05-03 16:15 ` Junio C Hamano
2013-05-04 1:10 ` Duy Nguyen
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1364728148-7537-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).