Subject: Re: [RFC] Plumbing-only support for storing object metadata

From: "Shawn O. Pearce" <[email-masked]>
Date: Sun, 17 Aug 2008 23:12:36 -0700

Josh Triplett <[email-masked]>, Jamey Sharp <[email-masked]> wrote:
> On Sat, Aug 09, 2008 at 08:51:01PM -0700, Shawn O. Pearce wrote:
> > Nico and I have (at least in the past) agreed that type 0 is meant
> > as an escape indicator.  If the type is set to 0 then the real type
> > code appears in another byte of data which follows the object's
> > inflated length.
> >
> > That leaves only type 5 available.
> [...]
> > So yea, there really aren't any new type bits available.
> 
> If consensus opinion was that new object types were a reasonable way to
> solve this problem, then it sounds as if there's plenty of room to
> create new types using this escape mechanism.

Yes, but we'd hate to see the majority of the encodings within a
pack using the escape mechanism.

So a lot of my argument here was just trying to point out that
type bits aren't free, and we need to make sure the limited ones
available are applied to the majority of the pack contents.

Adding a new type bit is a lot more than just adding it to the pack
data field.  Look at the amount of code that needed to be changed to
support gitlink in trees, and that was "reusing" the OBJ_COMMIT type.
Anytime you start poking at the core object enumeration code with
new cases there's a lot of corners that are affected.

-- 
Shawn.