The default was not to change the window or depth at all.  As suggested
by Jon Smirl, Linus Torvalds and others, default to

        --window=250 --depth=250

Signed-off-by: Johannes Schindelin <[EMAIL PROTECTED]>
---

        On Wed, 5 Dec 2007, Linus Torvalds wrote:

        > On Thu, 6 Dec 2007, Daniel Berlin wrote:
        > > 
        > > Actually, it turns out that git-gc --aggressive does this dumb 
        > > thing to pack files sometimes regardless of whether you 
        > > converted from an SVN repo or not.
        > 
        > Absolutely. git --aggressive is mostly dumb. It's really only 
        > useful for the case of "I know I have a *really* bad pack, and I 
        > want to throw away all the bad packing decisions I have done".
        >
        > [...]
        > 
        > So the equivalent of "git gc --aggressive" - but done *properly* 
        > - is to do (overnight) something like
        > 
        >       git repack -a -d --depth=250 --window=250

        How about this, then?
        
 builtin-gc.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/builtin-gc.c b/builtin-gc.c
index 799c263..c6806d3 100644
--- a/builtin-gc.c
+++ b/builtin-gc.c
@@ -23,7 +23,7 @@ static const char * const builtin_gc_usage[] = {
 };
 
 static int pack_refs = 1;
-static int aggressive_window = -1;
+static int aggressive_window = 250;
 static int gc_auto_threshold = 6700;
 static int gc_auto_pack_limit = 20;
 
@@ -192,6 +192,7 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
 
        if (aggressive) {
                append_option(argv_repack, "-f", MAX_ADD);
+               append_option(argv_repack, "--depth=250", MAX_ADD);
                if (aggressive_window > 0) {
                        sprintf(buf, "--window=%d", aggressive_window);
                        append_option(argv_repack, buf, MAX_ADD);
-- 
1.5.3.7.2157.g9598e

Reply via email to