Consolidate {receive,fetch}.unpackLimit
authorJunio C Hamano <junkio@cox.net>
Thu, 25 Jan 2007 01:02:15 +0000 (17:02 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 25 Jan 2007 02:08:02 +0000 (18:08 -0800)
This allows transfer.unpackLimit to specify what these two
configuration variables want to set.

We would probably want to deprecate the two separate variables,
as I do not see much point in specifying them independently.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/config.txt
fetch-pack.c
receive-pack.c
t/t5500-fetch-pack.sh
index 383ff29f82bbe50d8482f1fdf963ebd822e4045f..8086d753683f3b6a2eec49e51af0ed2f1c864619 100644 (file)
@@ -488,3 +488,8 @@ receive.denyNonFastForwards::
        even if that push is forced. This configuration variable is
        set when initializing a shared repository.
 
+transfer.unpackLimit::
+       When `fetch.unpackLimit` or `receive.unpackLimit` are
+       not set, the value of this variable is used instead.
+
+
index fc0534ce03a69f45671d009772865cbfcad3b026..83a1d7b319828302582518ef258f931a105e3201 100644 (file)
@@ -8,6 +8,8 @@
 #include "sideband.h"
 
 static int keep_pack;
+static int transfer_unpack_limit = -1;
+static int fetch_unpack_limit = -1;
 static int unpack_limit = 100;
 static int quiet;
 static int verbose;
@@ -645,7 +647,12 @@ static int remove_duplicates(int nr_heads, char **heads)
 static int fetch_pack_config(const char *var, const char *value)
 {
        if (strcmp(var, "fetch.unpacklimit") == 0) {
-               unpack_limit = git_config_int(var, value);
+               fetch_unpack_limit = git_config_int(var, value);
+               return 0;
+       }
+
+       if (strcmp(var, "transfer.unpacklimit") == 0) {
+               transfer_unpack_limit = git_config_int(var, value);
                return 0;
        }
 
@@ -666,6 +673,11 @@ int main(int argc, char **argv)
        setup_ident();
        git_config(fetch_pack_config);
 
+       if (0 <= transfer_unpack_limit)
+               unpack_limit = transfer_unpack_limit;
+       else if (0 <= fetch_unpack_limit)
+               unpack_limit = fetch_unpack_limit;
+
        nr_heads = 0;
        heads = NULL;
        for (i = 1; i < argc; i++) {
index b3a45526923772acc1cd0efea1523d0ace03487a..8b59b3227e8c3c920d04b05cd5b5bb4e72e7753f 100644 (file)
@@ -10,6 +10,8 @@
 static const char receive_pack_usage[] = "git-receive-pack <git-dir>";
 
 static int deny_non_fast_forwards = 0;
+static int receive_unpack_limit = -1;
+static int transfer_unpack_limit = -1;
 static int unpack_limit = 100;
 static int report_status;
 
@@ -18,21 +20,22 @@ static int capabilities_sent;
 
 static int receive_pack_config(const char *var, const char *value)
 {
-       git_default_config(var, value);
-
-       if (strcmp(var, "receive.denynonfastforwards") == 0)
-       {
+       if (strcmp(var, "receive.denynonfastforwards") == 0) {
                deny_non_fast_forwards = git_config_bool(var, value);
                return 0;
        }
 
-       if (strcmp(var, "receive.unpacklimit") == 0)
-       {
-               unpack_limit = git_config_int(var, value);
+       if (strcmp(var, "receive.unpacklimit") == 0) {
+               receive_unpack_limit = git_config_int(var, value);
                return 0;
        }
 
-       return 0;
+       if (strcmp(var, "transfer.unpacklimit") == 0) {
+               transfer_unpack_limit = git_config_int(var, value);
+               return 0;
+       }
+
+       return git_default_config(var, value);
 }
 
 static int show_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data)
@@ -431,6 +434,11 @@ int main(int argc, char **argv)
        ignore_missing_committer_name();
        git_config(receive_pack_config);
 
+       if (0 <= transfer_unpack_limit)
+               unpack_limit = transfer_unpack_limit;
+       else if (0 <= receive_unpack_limit)
+               unpack_limit = receive_unpack_limit;
+
        write_head_info();
 
        /* EOF */
index 7fd651b1c481a0b4184a36f1184eba5d4277843b..058cce0775c3fdc98e6c0e70c99ce387affd699c 100755 (executable)
@@ -98,7 +98,7 @@ pull_to_client () {
        mkdir client &&
        cd client &&
        git-init 2>> log2.txt &&
-       git repo-config fetch.unpacklimit 0
+       git repo-config transfer.unpacklimit 0
 )
 
 add A1