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 4/4] Use --not-so-strict on all pack transfer for connectivity check
Date: Sun, 31 Mar 2013 18:09:08 +0700 [thread overview]
Message-ID: <1364728148-7537-5-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1364728148-7537-1-git-send-email-pclouds@gmail.com>
This replaces check_everything_connected() with --not-so-strict, which
accomplishes the same thing and is generally cheaper.
This also forces connectivity check on "git clone".
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/fetch.c | 6 ------
builtin/receive-pack.c | 22 ++++------------------
fetch-pack.c | 2 ++
t/t5504-fetch-receive-strict.sh | 2 +-
4 files changed, 7 insertions(+), 25 deletions(-)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 4b6b1df..d9f970f 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -400,12 +400,6 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
else
url = xstrdup("foreign");
- rm = ref_map;
- if (check_everything_connected(iterate_ref_map, 0, &rm)) {
- rc = error(_("%s did not send all necessary objects\n"), url);
- goto abort;
- }
-
/*
* The first pass writes objects to be merged and then the
* second pass writes the rest, in order to allow using
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 62ba6e7..07abb14 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -663,19 +663,6 @@ static int command_singleton_iterator(void *cb_data, unsigned char sha1[20])
return 0;
}
-static void set_connectivity_errors(struct command *commands)
-{
- struct command *cmd;
-
- for (cmd = commands; cmd; cmd = cmd->next) {
- struct command *singleton = cmd;
- if (!check_everything_connected(command_singleton_iterator,
- 0, &singleton))
- continue;
- cmd->error_string = "missing necessary objects";
- }
-}
-
static int iterate_receive_command_list(void *cb_data, unsigned char sha1[20])
{
struct command **cmd_list = cb_data;
@@ -718,11 +705,6 @@ static void execute_commands(struct command *commands, const char *unpacker_erro
return;
}
- cmd = commands;
- if (check_everything_connected(iterate_receive_command_list,
- 0, &cmd))
- set_connectivity_errors(commands);
-
reject_updates_to_hidden(commands);
if (run_receive_hook(commands, "pre-receive", 0)) {
@@ -843,6 +825,8 @@ static const char *unpack(int err_fd)
unpacker[i++] = "-q";
if (fsck_objects)
unpacker[i++] = "--strict";
+ else
+ unpacker[i++] = "--not-so-strict";
unpacker[i++] = hdr_arg;
unpacker[i++] = NULL;
memset(&child, 0, sizeof(child));
@@ -868,6 +852,8 @@ static const char *unpack(int err_fd)
keeper[i++] = "--stdin";
if (fsck_objects)
keeper[i++] = "--strict";
+ else
+ keeper[i++] = "--not-so-strict";
keeper[i++] = "--fix-thin";
keeper[i++] = hdr_arg;
keeper[i++] = keep_arg;
diff --git a/fetch-pack.c b/fetch-pack.c
index 1f9c5ba..ae20ae5 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -754,6 +754,8 @@ static int get_pack(struct fetch_pack_args *args,
? transfer_fsck_objects
: 0)
*av++ = "--strict";
+ else
+ *av++ = "--not-so-strict";
*av++ = NULL;
cmd.in = demux.out;
diff --git a/t/t5504-fetch-receive-strict.sh b/t/t5504-fetch-receive-strict.sh
index 69ee13c..14d2935 100755
--- a/t/t5504-fetch-receive-strict.sh
+++ b/t/t5504-fetch-receive-strict.sh
@@ -60,7 +60,7 @@ test_expect_success 'fetch with transfer.fsckobjects' '
cat >exp <<EOF
To dst
-! refs/heads/master:refs/heads/test [remote rejected] (missing necessary objects)
+! refs/heads/master:refs/heads/test [remote rejected] (unpacker error)
EOF
test_expect_success 'push without strict' '
--
1.8.2.83.gc99314b
next prev parent 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 [PATCH 0/4] check_everything_connected replacement Nguyễn Thái Ngọc Duy
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 ` Nguyễn Thái Ngọc Duy [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1364728148-7537-5-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.
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.