Re: [PATCH 2/2] pack-objects: optimize "recency order"
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Oct 27, 2011, 21:01 UTC
- Message-ID
- <CACBZZX6Ss4jLtdrDhLUNKCUjEHjHHKzfv-LMkOyTPDhRUXm4sQ@mail.gmail.com>
- In-Reply-To
- <1310084657-16790-3-git-send-email-gitster@pobox.com>
On Fri, Jul 8, 2011 at 02:24, Junio C Hamano <gitster@pobox.com> wrote:
> - Commits at the tip of tags are written together, in the hope that > revision traversal done in incremental fetch (which starts by > putting them in a revision queue marked as UNINTERESTING) will see a > better locality of these objects;
We recently upgraded to 1.7.7 and I've traced a very large slowdown in packing down to this commit.
On our repository packing used to take around 30 seconds, it now takes about 4 minutes. Which means that cloning the repository went from being slightly slow to pretty intolerable.
I haven't dug into why this is but I'm pretty sure it's because this patch makes Git behave pathologically on repositories with a large amount of tags. git.git itself has ~27k revs / and ~450 tags, or a tag every ~60 revisions.
Try it on e.g. a repository with a couple of hundred thousand revs and a tag every 10-20 revisions.