diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-09-17 00:48:39 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-09-17 23:12:15 -0700 |
commit | 95143f9e686dee144e0ff4a20190b923e20e1b64 (patch) | |
tree | 9bf6dc0c231f64fdf591dc46a2d54ee337c83ccf /builtin-gc.c | |
parent | a087cc9819d5790a0aeb42c2bd74f781c555e8d6 (diff) | |
download | git-95143f9e686dee144e0ff4a20190b923e20e1b64.tar.gz |
git-gc --auto: restructure the way "repack" command line is built.
We used to build the command line to run repack outside of
need_to_gc() but with the next patch we would want to tweak the
command line depending on the nature of need.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-gc.c')
-rw-r--r-- | builtin-gc.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/builtin-gc.c b/builtin-gc.c index bf29f5e1a2..34ce35befb 100644 --- a/builtin-gc.c +++ b/builtin-gc.c @@ -29,8 +29,6 @@ static const char *argv_repack[MAX_ADD] = {"repack", "-a", "-d", "-l", NULL}; static const char *argv_prune[] = {"prune", NULL}; static const char *argv_rerere[] = {"rerere", "gc", NULL}; -static const char *argv_repack_auto[] = {"repack", "-d", "-l", NULL}; - static int gc_config(const char *var, const char *value) { if (!strcmp(var, "gc.packrefs")) { @@ -104,6 +102,8 @@ static int too_many_loose_objects(void) static int need_to_gc(void) { + int ac = 0; + /* * Setting gc.auto to 0 or negative can disable the * automatic gc @@ -111,7 +111,14 @@ static int need_to_gc(void) if (gc_auto_threshold <= 0) return 0; - return too_many_loose_objects(); + if (!too_many_loose_objects()) + return 0; + + argv_repack[ac++] = "repack"; + argv_repack[ac++] = "-d"; + argv_repack[ac++] = "-l"; + argv_repack[ac++] = NULL; + return 1; } int cmd_gc(int argc, const char **argv, const char *prefix) @@ -154,8 +161,6 @@ int cmd_gc(int argc, const char **argv, const char *prefix) * Auto-gc should be least intrusive as possible. */ prune = 0; - for (i = 0; i < ARRAY_SIZE(argv_repack_auto); i++) - argv_repack[i] = argv_repack_auto[i]; if (!need_to_gc()) return 0; } |