On Sat, Jan 26, 2013 at 10:32 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Jeff King <peff@xxxxxxxx> writes: > >> This is a repost from here: >> >> http://thread.gmane.org/gmane.comp.version-control.git/211176 >> >> which got no response initially. Basically the issue is that read-only >> repos (e.g., a CI server) whose workflow is something like: >> >> git fetch $some_branch && >> git checkout -f $some_branch && >> make test >> >> will never run git-gc, and will accumulate a bunch of small packs and >> loose objects, leading to poor performance. ... > I also wonder if we would be helped by another "repack" mode that > coalesces small packs into a single one with minimum overhead, and > run that often from "gc --auto", so that we do not end up having to > have 50 packfiles. Yes. This does help.... > When we have 2 or more small and young packs, we could: > > - iterate over idx files for these packs to enumerate the objects > to be packed, replacing read_object_list_from_stdin() step; > > - always choose to copy the data we have in these existing packs, > instead of doing a full prepare_pack(); and > > - use the order the objects appear in the original packs, bypassing > compute_write_order(). Hmm, sounds familiar. Seems like its what we do in JGit for Android. :-) -- 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