summaryrefslogtreecommitdiff
path: root/fetch-pack.c
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2018-03-14 18:42:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-03-15 17:16:27 (GMT)
commit98a2ea46c2dedf45b5a94335462547a5d78a68e2 (patch)
treeb0ed21e4ed7c27239fbc513dd0d969cffa699805 /fetch-pack.c
parentffb2c0fe5c2dbfe2be0a4743ffed622295e1124c (diff)
downloadgit-98a2ea46c2dedf45b5a94335462547a5d78a68e2.zip
git-98a2ea46c2dedf45b5a94335462547a5d78a68e2.tar.gz
git-98a2ea46c2dedf45b5a94335462547a5d78a68e2.tar.bz2
fetch-pack: do not check links for partial fetch
When doing a partial clone or fetch with transfer.fsckobjects=1, use the --fsck-objects instead of the --strict flag when invoking index-pack so that links are not checked, only objects. This is because incomplete links are expected when doing a partial clone or fetch. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fetch-pack.c')
-rw-r--r--fetch-pack.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/fetch-pack.c b/fetch-pack.c
index d974612..1d61175 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -886,8 +886,17 @@ static int get_pack(struct fetch_pack_args *args,
? fetch_fsck_objects
: transfer_fsck_objects >= 0
? transfer_fsck_objects
- : 0)
- argv_array_push(&cmd.args, "--strict");
+ : 0) {
+ if (args->from_promisor)
+ /*
+ * We cannot use --strict in index-pack because it
+ * checks both broken objects and links, but we only
+ * want to check for broken objects.
+ */
+ argv_array_push(&cmd.args, "--fsck-objects");
+ else
+ argv_array_push(&cmd.args, "--strict");
+ }
cmd.in = demux.out;
cmd.git_cmd = 1;