Re: [PATCH 0/2] optimizing pack access on "read only" fetch repos
On Sat, Jan 26, 2013 at 10:32 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
> Jeff King <peff@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.
Show 10 quoted lines
> 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. :-)