Skip to content

Commit

Permalink
pack-objects: check pack.window for default window size
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Jul 24, 2006
1 parent 8eb38ca commit 4812a93
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
4 changes: 4 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
13 changes: 12 additions & 1 deletion pack-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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++) {
Expand Down

0 comments on commit 4812a93

Please sign in to comment.