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 | |
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>
-rw-r--r-- | Documentation/config.txt | 4 | ||||
-rw-r--r-- | pack-objects.c | 13 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt index f4985d453e..9d08dfceda 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -193,6 +193,10 @@ merge.summary:: Whether to include summaries of merged commits in newly created merge commit messages. False by default. +pack.window:: + The size of the window used by gitlink:git-pack-objects[1] when no + window size is given on the command line. Defaults to 10. + pull.octopus:: The default merge strategy to use when pulling multiple branches at once. 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++) { |