From: Junio C Hamano <gitster@pobox.com>
To: Duy Nguyen <pclouds@gmail.com>
Cc: Jeff King <peff@peff.net>, Shawn Pearce <spearce@spearce.org>,
David Michael Barr <b@rr-dav.id.au>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [RFC] pack-objects: compression level for non-blobs
Date: Tue, 01 Jan 2013 12:02:28 -0800 [thread overview]
Message-ID: <7v7gnwbrjf.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <CACsJy8DpnO6X6jdQVsr1NwrXF2MDBBcHZQTay=TyLFc5p_z9eg@mail.gmail.com> (Duy Nguyen's message of "Tue, 1 Jan 2013 19:10:54 +0700")
Duy Nguyen <pclouds@gmail.com> writes:
> On Tue, Jan 1, 2013 at 11:15 AM, Duy Nguyen <pclouds@gmail.com> wrote:
>>> Fix pack-objects to behave the way JGit does, cluster commits first in
>>> the pack stream. Now you have a dense space of commits. If I remember
>>> right this has a tiny positive improvement for most rev-list
>>> operations with very little downside.
>>
>> I was going to suggest a similar thing. The current state of C Git's
>> pack writing is not bad. We mix commits and tags together, but tags
>
> And I was wrong. At least since 1b4bb16 (pack-objects: optimize
> "recency order" - 2011-06-30) commits are spread out and can be mixed
> with trees too.
Really? That certainly wasn't the intention of that change.
The compute_write_order() function first fills the commits in the
original recency order (the order in which rev-list discovered them
by traversing the history from the tips) until we find a commit that
is tagged by a ref in the refs/tags/ hierarchy. When we reach that
point, we stop showing the commits and show all the tags in the
refs/tags/ hierarchy and commits that are tagged by them, breaking
the original ordering of commits so that ancient but tagged commits
clump at this point. After that, we resume showing the rest of the
commits and tags in the original order they came to us. Trees are
done next, and then the remainder.
So I am not sure how trees can appear between commits.
prev parent reply other threads:[~2013-01-01 20:02 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-26 6:25 [RFC] pack-objects: compression level for non-blobs David Michael Barr
2012-11-26 12:35 ` David Michael Barr
2012-12-29 0:41 ` Jeff King
2012-12-29 4:34 ` Nguyen Thai Ngoc Duy
2012-12-29 5:07 ` Jeff King
2012-12-29 5:25 ` Nguyen Thai Ngoc Duy
2012-12-29 5:27 ` Jeff King
2012-12-29 9:05 ` Jeff King
2012-12-29 9:48 ` Jeff King
2012-12-30 12:05 ` Jeff King
2012-12-30 12:53 ` Nguyen Thai Ngoc Duy
2012-12-30 21:31 ` Jeff King
2012-12-31 18:06 ` Shawn Pearce
2013-01-01 4:15 ` Duy Nguyen
2013-01-01 12:10 ` Duy Nguyen
2013-01-01 17:17 ` Shawn Pearce
2013-01-01 23:47 ` Junio C Hamano
2013-01-02 2:23 ` Duy Nguyen
2013-01-01 20:02 ` Junio C Hamano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7v7gnwbrjf.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=b@rr-dav.id.au \
--cc=git@vger.kernel.org \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.