On Sat, Jan 26, 2013 at 10:32 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Jeff King <p...@peff.net> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to