diff options
author | Jeff King <peff@peff.net> | 2006-07-23 01:50:30 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-07-23 23:40:35 -0700 |
commit | 4812a93a8c0ad25ee701da8ff46a3c5d62994224 (patch) | |
tree | 2ee5fd3278f6ff6efed8b874193bdeed82eb171c /pack-objects.c | |
parent | 8eb38cad440d8d51d8737d546a067a88361f6c3d (diff) | |
download | git-4812a93a8c0ad25ee701da8ff46a3c5d62994224.tar.gz |
pack-objects: check pack.window for default window size
For some repositories, deltas simply don't make sense. One can disable
them for git-repack by adding --window, but git-push insists on making
the deltas which can be very CPU-intensive for little benefit.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'pack-objects.c')
-rw-r--r-- | pack-objects.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/pack-objects.c b/pack-objects.c index 04a48b925b..861c7f08ff 100644 --- a/pack-objects.c +++ b/pack-objects.c @@ -63,6 +63,7 @@ static const char *base_name; static unsigned char pack_file_sha1[20]; static int progress = 1; static volatile sig_atomic_t progress_update = 0; +static int window = 10; /* * The object names in objects array are hashed with this hashtable, @@ -1216,16 +1217,26 @@ static void setup_progress_signal(void) setitimer(ITIMER_REAL, &v, NULL); } +static int git_pack_config(const char *k, const char *v) +{ + if(!strcmp(k, "pack.window")) { + window = git_config_int(k, v); + return 0; + } + return git_default_config(k, v); +} + int main(int argc, char **argv) { SHA_CTX ctx; char line[40 + 1 + PATH_MAX + 2]; - int window = 10, depth = 10, pack_to_stdout = 0; + int depth = 10, pack_to_stdout = 0; struct object_entry **list; int num_preferred_base = 0; int i; setup_git_directory(); + git_config(git_pack_config); progress = isatty(2); for (i = 1; i < argc; i++) { |