See [1] for the discussion that led to this series. It attempts to pack the repo with two different depths: old history tightly packed (smaller but also takes longer time to access) and recent history on the opposite. First draft, probably still some bugs lurking in pack_old_history(). It would be great if people could try it out on large repos and report back the results (pack size between the old and new aggressive, gc time, git log and blame speed...) [1] http://thread.gmane.org/gmane.comp.version-control.git/242277 Nguyễn Thái Ngọc Duy (4): environment.c: fix constness for odb_pack_keep() pack-objects: support --keep gc --aggressive: make --depth configurable gc --aggressive: three phase repacking Documentation/config.txt | 24 ++++++++ Documentation/git-gc.txt | 3 + Documentation/git-pack-objects.txt | 4 ++ builtin/gc.c | 113 ++++++++++++++++++++++++++++++++++++- builtin/pack-objects.c | 26 +++++++++ environment.c | 2 +- git-compat-util.h | 2 +- 7 files changed, 169 insertions(+), 5 deletions(-) -- 1.9.0.40.gaa8c3ea -- 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