From 9ce392f4826558357af2b2c7eb6ad876fdb53a91 Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Mon, 21 Nov 2005 22:52:37 -0800
Subject: [PATCH] Move diff.renamelimit out of default configuration.

Otherwise we would end up linking all the unneeded stuff into git-daemon
only to link with git_default_config.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 Makefile      |  3 ++-
 config.c      |  5 -----
 diff-files.c  |  2 +-
 diff-index.c  |  2 +-
 diff-stages.c |  3 +++
 diff-tree.c   |  2 +-
 diff.c        | 10 ++++++++++
 diff.h        |  1 +
 8 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/Makefile b/Makefile
index ecbb88889..a97a5d959 100644
--- a/Makefile
+++ b/Makefile
@@ -482,7 +482,8 @@ deb: dist
 ### Cleaning rules
 
 clean:
-	rm -f *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o git $(PROGRAMS) $(LIB_FILE)
+	rm -f *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o $(LIB_FILE)
+	rm -f $(PROGRAMS) $(SIMPLE_PROGRAMS) git$X
 	rm -f $(filter-out gitk,$(SCRIPTS))
 	rm -f *.spec *.pyc *.pyo
 	rm -rf $(GIT_TARNAME)
diff --git a/config.c b/config.c
index 357c1caf9..18d59ee6e 100644
--- a/config.c
+++ b/config.c
@@ -236,11 +236,6 @@ int git_default_config(const char *var, const char *value)
 		return 0;
 	}
 
-	if (!strcmp(var, "diff.renamelimit")) {
-		diff_rename_limit_default = git_config_int(var, value);
-		return 0;
-	}
-
 	/* Add other config variables here.. */
 	return 0;
 }
diff --git a/diff-files.c b/diff-files.c
index 17899390b..38599b5b7 100644
--- a/diff-files.c
+++ b/diff-files.c
@@ -38,7 +38,7 @@ int main(int argc, const char **argv)
 	const char *prefix = setup_git_directory();
 	int entries, i;
 
-	git_config(git_default_config);
+	git_config(git_diff_config);
 	diff_setup(&diff_options);
 	while (1 < argc && argv[1][0] == '-') {
 		if (!strcmp(argv[1], "--")) {
diff --git a/diff-index.c b/diff-index.c
index c9a9f4c74..0054883a5 100644
--- a/diff-index.c
+++ b/diff-index.c
@@ -180,7 +180,7 @@ int main(int argc, const char **argv)
 	int allow_options = 1;
 	int i;
 
-	git_config(git_default_config);
+	git_config(git_diff_config);
 	diff_setup(&diff_options);
 	for (i = 1; i < argc; i++) {
 		const char *arg = argv[i];
diff --git a/diff-stages.c b/diff-stages.c
index 85170b21d..9968d6ce1 100644
--- a/diff-stages.c
+++ b/diff-stages.c
@@ -55,6 +55,9 @@ int main(int ac, const char **av)
 {
 	int stage1, stage2;
 
+	setup_git_directory();
+
+	git_config(git_diff_config);
 	read_cache();
 	diff_setup(&diff_options);
 	while (1 < ac && av[1][0] == '-') {
diff --git a/diff-tree.c b/diff-tree.c
index 09d16ad66..da9c68c16 100644
--- a/diff-tree.c
+++ b/diff-tree.c
@@ -164,7 +164,7 @@ int main(int argc, const char **argv)
 	unsigned char sha1[2][20];
 	const char *prefix = setup_git_directory();
 
-	git_config(git_default_config);
+	git_config(git_diff_config);
 	nr_sha1 = 0;
 	diff_setup(&diff_options);
 
diff --git a/diff.c b/diff.c
index ffe8a5523..2e0797bf3 100644
--- a/diff.c
+++ b/diff.c
@@ -15,6 +15,16 @@ static int use_size_cache;
 
 int diff_rename_limit_default = -1;
 
+int git_diff_config(const char *var, const char *value)
+{
+	if (!strcmp(var, "diff.renamelimit")) {
+		diff_rename_limit_default = git_config_int(var, value);
+		return 0;
+	}
+
+	return git_default_config(var, value);
+}
+
 static char *quote_one(const char *str)
 {
 	int needlen;
diff --git a/diff.h b/diff.h
index 9b2e1e62b..32b478017 100644
--- a/diff.h
+++ b/diff.h
@@ -77,6 +77,7 @@ extern int diff_scoreopt_parse(const char *opt);
 #define DIFF_SETUP_USE_CACHE		2
 #define DIFF_SETUP_USE_SIZE_CACHE	4
 
+extern int git_diff_config(const char *var, const char *value);
 extern void diff_setup(struct diff_options *);
 extern int diff_opt_parse(struct diff_options *, const char **, int);
 extern int diff_setup_done(struct diff_options *);
-- 
2.26.2