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

Re: [PATCH] Let "git svn" run "git gc --auto" occasionally

From
EWEric Wong <normalperson@yhbt.net>
Date
Jan 21, 2008, 22:48 UTC
Message-ID
<20080121224818.GA8872@untitled>
In-Reply-To
<7vlk6k8fyp.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> wrote:
Show 25 quoted lines
> Karl Hasselström <kha@treskal.com> writes:
> 
> > On 2008-01-19 19:37:37 -0800, Eric Wong wrote:
> >
> >> Harvey Harrison <harvey.harrison@gmail.com> wrote:
> >>
> >> > I found 100 was a bit too low when doing some large repos, I've
> >> > been using 1000. I'd argue that --repack=1000 should be done by
> >> > default.
> >>
> >> I've found 100 for repack too low in the past, too, which is why
> >> repack defaults to 1000 if no number is specified. I think it should
> >> hold for gc --auto, too.
> >
> > OK, I'll change it. But remember, gc --auto doesn't do _anything_
> > unless it's deemed necessary, so it should behave much better than
> > just plain repack. In theory at least.
> 
> Careful. I made the same mistake and it had to be corrected with
> e0cd252eb0ba6453acd64762625b004aa4cc162b.
> 
> I think defaulting to --repack=1000 is a sane first step and you
> guys already have most code for it so that is a very safe thing.
> 
> Switching to "gc --auto" can be done early post 1.5.4, right?
Sorry for the latency[1], ack on both of Karl's patches for post-1.5.4.
Here's a conservative change for 1.5.4 (not at all tested):
From dbccd8081c6422569a9ca1211e27f56a24fdf3f3 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Mon, 21 Jan 2008 14:37:41 -0800
Subject: [PATCH] git-svn: default to repacking every 1000 commits

This should reduce disk space usage when doing large imports. We'll be switching to "gc --auto" post-1.5.4 to handle repacking for us.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index 9f2b587..12745d5 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1408,11 +1408,9 @@ sub read_all_remotes {
 }
 
 sub init_vars {
-	if (defined $_repack) {
-		$_repack = 1000 if ($_repack <= 0);
-		$_repack_nr = $_repack;
-		$_repack_flags ||= '-d';
-	}
+	$_repack = 1000 unless (defined $_repack && $_repack > 0);
+	$_repack_nr = $_repack;
+	$_repack_flags ||= '-d';
 }
 
 sub verify_remotes_sanity {
-- 
Eric Wong

[1] - I've been busy with other things and will also be traveling
      this week, too.
Previous: Junio C HamanoNext: Junio C Hamano
Message 11 of 27 in “git-svn should default to --repack”
  1. Kevin BallardJan 18, 2008
  2. Karl HasselströmJan 18, 2008
  3. Junio C HamanoJan 18, 2008
  4. Karl HasselströmJan 19, 2008
  5. Kevin BallardJan 19, 2008
  6. Let "git svn" run "git gc --auto" occasionallyKarl Hasselström, Jan 19, 2008
  7. Harvey HarrisonJan 19, 2008
  8. Eric WongJan 20, 2008
  9. Karl HasselströmJan 20, 2008
  10. Junio C HamanoJan 20, 2008
  11. Eric WongJan 21, 2008
  12. Junio C HamanoJan 22, 2008
  13. Eric WongJan 22, 2008
  14. Junio C HamanoJan 22, 2008
  15. git filter-branch should run git gc --autoKevin Ballard, Jan 23, 2008
  16. Junio C HamanoJan 23, 2008
  17. Junio C HamanoJan 23, 2008
  18. Kevin BallardJan 23, 2008
  19. Harvey HarrisonJan 23, 2008
  20. Kevin BallardJan 23, 2008
  21. Sam VilainJan 23, 2008
  22. Kevin BallardJan 23, 2008
  23. Mike HommeyJan 23, 2008
  24. Johannes SchindelinJan 23, 2008
  25. Junio C HamanoJan 23, 2008
  26. 1/2 git-svn: Don't call git-repack anymoreKarl Hasselström, Jan 20, 2008
  27. 2/2 Let "git svn" run "git gc --auto" occasionallyKarl Hasselström, Jan 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.