Skip to content

Commit

Permalink
objects to be pruned immediately don't have to be loosened
Browse files Browse the repository at this point in the history
When there is no grace period before pruning unreferenced objects, it is
pointless to push those objects in their loose form just to delete them
right away.

Also be more explicit about the possibility of using "now" in the
gc.pruneexpire config variable (needed for the above behavior to
happen).

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Nicolas Pitre authored and Junio C Hamano committed Jan 1, 2009
1 parent 936b705 commit 8e8daf3
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
4 changes: 3 additions & 1 deletion Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 6 additions & 2 deletions builtin-gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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]);
Expand Down

0 comments on commit 8e8daf3

Please sign in to comment.