git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: auto gc again

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Mar 19, 2008, 21:52 UTC
Message-ID
<alpine.LFD.1.00.0803191444490.3020@woody.linux-foundation.org>
In-Reply-To
<7vd4pq2ymo.fsf@gitster.siamese.dyndns.org>
On Wed, 19 Mar 2008, Junio C Hamano wrote:
Show 6 quoted lines
> 
> Having said that, I am not sure how the auto gc is triggering for your
> (presumably reasonably well maintained) repository that has only small
> number of loose objects.  I haven't seen auto-gc annoyance myself (and
> git.git is not the only project I have my git experience with), and Linus
> also said he hasn't seen breakages.
I think it was 'autopacklimit'.
I think the correct solution is along the following lines:
 - disable "git gc --auto" entirely when "gc.auto <= 0" (ie we don't even 
   care about 'autopacklimit' unless automatic packing is on at all)
   Rationale: I do think that if you set gc.auto to zero, you should 
   expect git gc --auto to be disabled.
 - make the default for autopacklimit rather higher (pick number at 
   random: 50 instead of 20).
   Rationale: the reason for "git gc --auto" wasn't to keep things 
   perfectly packed, but to avoid the _really_ bad cases. The old default 
   of 20 may be fine if you want to always keep the repo very tight, but 
   that wasn't why "git gc --auto" was done, was it?
Suggested patch appended. Comments?
		Linus
---
 builtin-gc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin-gc.c b/builtin-gc.c
index 95917d7..16a912a 100644
--- a/builtin-gc.c
+++ b/builtin-gc.c
@@ -25,7 +25,7 @@ static const char * const builtin_gc_usage[] = {
 static int pack_refs = 1;
 static int aggressive_window = -1;
 static int gc_auto_threshold = 6700;
-static int gc_auto_pack_limit = 20;
+static int gc_auto_pack_limit = 50;
 static char *prune_expire = "2.weeks.ago";
 
 #define MAX_ADD 10
@@ -163,7 +163,7 @@ static int need_to_gc(void)
 	 * Setting gc.auto and gc.autopacklimit to 0 or negative can
 	 * disable the automatic gc.
 	 */
-	if (gc_auto_threshold <= 0 && gc_auto_pack_limit <= 0)
+	if (gc_auto_threshold <= 0)
 		return 0;
 
 	/*
Previous: Junio C HamanoNext: Junio C Hamano
Message 23 of 30 in “auto gc again”
  1. Jens AxboeMar 18, 2008
  2. Linus TorvaldsMar 18, 2008
  3. Jens AxboeMar 18, 2008
  4. Jens AxboeMar 18, 2008
  5. Linus TorvaldsMar 18, 2008
  6. Jens AxboeMar 18, 2008
  7. Johannes SchindelinMar 19, 2008
  8. Jens AxboeMar 19, 2008
  9. Johannes SchindelinMar 19, 2008
  10. Jens AxboeMar 20, 2008
  11. Nicolas PitreMar 19, 2008
  12. Jens AxboeMar 19, 2008
  13. Nicolas PitreMar 19, 2008
  14. Jens AxboeMar 20, 2008
  15. Junio C HamanoMar 20, 2008
  16. Jens AxboeMar 20, 2008
  17. Brandon CaseyMar 19, 2008
  18. builtin-gc.c: allow disabling all auto-gc'ing by assigning 0 to gc.autoBrandon Casey, Mar 19, 2008
  19. Teemu LikonenMar 20, 2008
  20. Nicolas PitreMar 19, 2008
  21. Jens AxboeMar 20, 2008
  22. Junio C HamanoMar 19, 2008
  23. Linus TorvaldsMar 19, 2008
  24. Junio C HamanoMar 19, 2008
  25. Nicolas PitreMar 19, 2008
  26. Junio C HamanoMar 19, 2008
  27. Nicolas PitreMar 20, 2008
  28. Junio C HamanoMar 20, 2008
  29. Nicolas PitreMar 20, 2008
  30. Junio C HamanoMar 20, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.