test: fetch/receive with fsckobjects
[gitweb.git] / builtin / fetch-pack.c
index df6a8dc2775cb3ec0d2375b3be34217f9342eb48..dac3038e908762b6558d8a73e7d2b598e44cb085 100644 (file)
@@ -14,7 +14,8 @@ static int transfer_unpack_limit = -1;
 static int fetch_unpack_limit = -1;
 static int unpack_limit = 100;
 static int prefer_ofs_delta = 1;
-static int fetch_fsck_objects;
+static int fetch_fsck_objects = -1;
+static int transfer_fsck_objects = -1;
 static struct fetch_pack_args args = {
        /* .uploadpack = */ "git-upload-pack",
 };
@@ -664,7 +665,11 @@ static int get_pack(int xd[2], char **pack_lockfile)
        }
        if (*hdr_arg)
                *av++ = hdr_arg;
-       if (fetch_fsck_objects)
+       if (fetch_fsck_objects >= 0
+           ? fetch_fsck_objects
+           : transfer_fsck_objects >= 0
+           ? transfer_fsck_objects
+           : 0)
                *av++ = "--strict";
        *av++ = NULL;
 
@@ -784,6 +789,11 @@ static int fetch_pack_config(const char *var, const char *value, void *cb)
                return 0;
        }
 
+       if (!strcmp(var, "transfer.fsckobjects")) {
+               transfer_fsck_objects = git_config_bool(var, value);
+               return 0;
+       }
+
        return git_default_config(var, value, cb);
 }