This flag seems misdesigned as-is. It makes the window bigger (good, and aggressive), but it also enabled "-f". Which sometimes causes _worse_ packing. In particular, there's a gcc import at git://git.infradead.org/toolchain/gcc.git which apparently packs down quite nicely to a 450MB pack, but when it gets repacked "aggressively", it blows up to 1.4GB. The reason? That pack was generated using --depth=100 --window=100 (I think). So under certain circumstances, "--aggressive" is anything _but_ aggressive, and actually causes much worse packing. If we want to be really aggressive, we migth decide to pass a new flag to pack-objects that does something closer to what "aggressive" was meant to do: it would use existing delta's if they exist, but _despite_ existing it could look if there are even better choices. So right now we have: - default behaviour: always re-use existing deltas, don't look at alternatives at all. This is optimal for CPU/memory/IO usage, and is generally a good idea - "-f" (and as a result, the current bad "git gc --aggressive"): never re-use existing deltas, always look for new ones. This is good if you have reason to believe that the old choices are bad, or you need to force re-generation of deltas (because you want to force a new pack-file format, for example) and the missing piece might be - "git pack-objects --aggressive": re-use existing deltas _and_ look for even better ones. This is good if all you're looking for is better packing. Hmm? Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html