Re: [PATCH v2 2/2] index-pack: kill union delta_base to save memory
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Feb 28, 2015, 11:44 UTC
- Message-ID
- <CACsJy8A3MxpQRwboVjyv7akvzgf3y23ZsnAaxuHXkm2U=tUk0A@mail.gmail.com>
- In-Reply-To
- <xmqqzj7zhx31.fsf@gitster.dls.corp.google.com>
On Sat, Feb 28, 2015 at 4:18 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 8 quoted lines
> Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes: > >> Notice that with "recent" Git versions, ofs-delta objects are >> preferred over ref-delta objects and ref-delta objects have no reason >> to be present in a clone pack. > > It is true that we try to use ofs-delta as much as possible, but > where does "have no reason to be present" come from?
Lack of knowledge, or writing without double checking the code.
> When an object cannot be represented as an ofs-delta (which can only > refer backwards), don't we use ref-delta, instead of storing it as a > deflated-full object?
Ah I think you're right. The decision to choose ofs-delta in pack-objects is if ofs-delta is enabled _and_ the offset to base is available (i.e. base is already written).
Show 7 quoted lines
> Probably "Not so ancient versions of Git tries to use ofs-delta > encoding whenever possible, so it is expected that objects encoded > using ref-delta are minority" may be closer to the truth. And that > observation does justify why using two separate pools (one with > 8-byte entries for ofs-delta, the other with 20-byte entries for > ref-delta) is a better idean than using one pool with 20-byte > entries for both kinds.
Yes. Looks good. Should I send a patch, or you fix the commit message locally?
-- Duy