Re: [PATCH] gc --aggressive: make it really aggressive
- From
Theodore Tso <tytso@mit.edu>
- Date
- Dec 6, 2007, 13:42 UTC
- Message-ID
- <20071206134243.GA17037@thunk.org>
- In-Reply-To
- <Pine.LNX.4.64.0712061201580.27959@racer.site>
On Thu, Dec 06, 2007 at 12:03:38PM +0000, Johannes Schindelin wrote:
Show 5 quoted lines
> > 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
I'd also suggest adding a comment in the man pages that this should only be done rarely, and that it can potentially take a *long* time (i.e., overnight) for big repositories, and in general it's not worth the effort to use --aggressive.
Apologies to Linus and to the gcc folks, since I was the one who originally coded up gc --aggressive, and at the time my intent was "rarely does it make sense, and it may take a long time". The reason why I didn't make the default --window and --depth larger is because at the time the biggest repo I had easy access to was the Linux kernel's, and there you rapidly hit diminishing returns at much smaller numbers, so there was no real point in using --window=250 --depth=250.
Linus later pointed out that what we *really* should do is at some point was to change repack -f to potentially retry to find a better delta, but to reuse the existing delta if it was no worse. That automatically does the right thing in the case where you had previously done a repack with --window=<large n> --depth=<large n>, but then later try using "gc --agressive", which ends up doing a worse job and throwing away the information from the previous repack with large window and depth sizes. Unfortunately no one ever got around to implementing that.
Regards,
- Ted