[PATCH] Consolidate {receive,fetch}.unpackLimit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxx>
---
 Documentation/config.txt |    5 +++++
 fetch-pack.c             |   14 +++++++++++++-
 receive-pack.c           |   24 ++++++++++++++++--------
 t/t5500-fetch-pack.sh    |    2 +-
 4 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 383ff29..8086d75 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -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.
+
+
diff --git a/fetch-pack.c b/fetch-pack.c
index fc0534c..83a1d7b 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -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++) {
diff --git a/receive-pack.c b/receive-pack.c
index b3a4552..8b59b32 100644
--- a/receive-pack.c
+++ b/receive-pack.c
@@ -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 */
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 7fd651b..058cce0 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -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
-- 
1.5.0.rc2.gae1d


-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]