summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2009-01-28 23:42:10 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-01-28 23:42:10 -0800
commit8e7d1f6d0300b47770930b82a5fc20fec73727c4 (patch)
treed739f495926828e7b59a34c1eebbdff971adde84
parentMerge branch 'mc/cd-p-pwd' into maint (diff)
parentobjects to be pruned immediately don't have to be loosened (diff)
downloadtgif-8e7d1f6d0300b47770930b82a5fc20fec73727c4.tar.xz
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
-rw-r--r--Documentation/config.txt4
-rw-r--r--builtin-gc.c8
2 files changed, 9 insertions, 3 deletions
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]);