From: Junio C Hamano Date: Thu, 29 Jan 2009 07:42:10 +0000 (-0800) Subject: Merge branch 'np/no-loosen-prune-expire-now' into maint X-Git-Tag: v1.6.1.2~6 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/8e7d1f6d0300b47770930b82a5fc20fec73727c4?hp=20bd35c1103930e690362d0342cdc54c5a97e4b1 Merge branch 'np/no-loosen-prune-expire-now' into maint * np/no-loosen-prune-expire-now: objects to be pruned immediately don't have to be loosened --- diff --git a/Documentation/config.txt b/Documentation/config.txt index 26551ea6e1..2ed868c81a 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -702,7 +702,9 @@ gc.packrefs:: gc.pruneexpire:: When 'git-gc' is run, it will call 'prune --expire 2.weeks.ago'. - Override the grace period with this config variable. + Override the grace period with this config variable. The value + "now" may be used to disable this grace period and always prune + unreachable objects immediately. gc.reflogexpire:: 'git-reflog expire' removes reflog entries older than diff --git a/builtin-gc.c b/builtin-gc.c index 781df601c5..f8eae4adb4 100644 --- a/builtin-gc.c +++ b/builtin-gc.c @@ -188,7 +188,9 @@ static int need_to_gc(void) * there is no need. */ if (too_many_packs()) - append_option(argv_repack, "-A", MAX_ADD); + append_option(argv_repack, + !strcmp(prune_expire, "now") ? "-a" : "-A", + MAX_ADD); else if (!too_many_loose_objects()) return 0; @@ -243,7 +245,9 @@ int cmd_gc(int argc, const char **argv, const char *prefix) "run \"git gc\" manually. See " "\"git help gc\" for more information.\n"); } else - append_option(argv_repack, "-A", MAX_ADD); + append_option(argv_repack, + !strcmp(prune_expire, "now") ? "-a" : "-A", + MAX_ADD); if (pack_refs && run_command_v_opt(argv_pack_refs, RUN_GIT_CMD)) return error(FAILED_RUN, argv_pack_refs[0]);