From: david@lang.hm
To: Josh Triplett <josh@freedesktop.org>, Jamey Sharp <jamey@minilop.net>
Cc: Jan Hudec <bulb@ucw.cz>, "Shawn O. Pearce" <spearce@spearce.org>,
"Stephen R. van den Berg" <srb@cuci.nl>,
Junio C Hamano <gitster@pobox.com>,
Scott Chacon <schacon@gmail.com>,
git@vger.kernel.org
Subject: Re: [RFC] Plumbing-only support for storing object metadata
Date: Sat, 16 Aug 2008 00:56:19 -0700 (PDT) [thread overview]
Message-ID: <alpine.DEB.1.10.0808160046250.12859@asgard.lang.hm> (raw)
In-Reply-To: <20080816062130.GA4554@oh.minilop.net>
On Fri, 15 Aug 2008, Josh Triplett wrote:
>
> - Several proposals suggest storing the metadata as a tree object,
> rather than a custom "props" object. This makes a lot of sense. It
> allows Git to use existing logic for parsing, reachability
> checking, merging, and checkouts. On the other hand, we want to
> optimize for the common cases such as POSIX permissions and ownership
> rather than the unusual cases like extended attributes, so it might
> make sense to store all the metadata for a particular object as a
> single blob.
ahh, but if the 'tree object' that you are storing is named file.attr and
contains just the posix permissions and ownership, there are a very small
number of different permutations that you will see on any one system (let
alone in any one repository), as such the duplicates will all hash to the
same value and be combined in storage. your rich checkout porceleans can
cache these into a lookup table and gain performance basicly equivalent to
defining a custom object.
in fact, I'd be willing to bet that even when extended attributes are in
use (say SELinux tags) the number of different tree objects that would be
used would still be pretty small.
> On Sun, Aug 10, 2008 at 03:34:37PM -0700, Junio C Hamano wrote:
>> For merging such "metainfo", you would need to do your "flattish/unrich"
>> checkout anyway,
>
> Why not just put entries into the index for each stage as merging
> currently does? You could then compare the metadata in the index with
> the filesystem metadata in the "rich" checkout, and resolve the conflict
> by adding the desired metadata to the index as stage 0 as usual. You
> would just need some sort of interface like "git add --metadata file" to
> add the metadata for file to the index. Alternatively, you could have
> some simple wrappers to directly edit the metadata in the index, much
> like the existing "git update-index --chmod" does for the execute bit.
becouse the tools to work directly on the index are very limited. yes they
can be left in the index, but then the index-manipulation tools need to
understand every type of metadata. if it's able to be presented in the
"flattish/unrich" mode it will work anywhere, even on operating systems
that can't run your 'rich' tools
David Lang
next prev parent reply other threads:[~2008-08-16 8:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-09 21:07 [RFC] Plumbing-only support for storing object metadata Jamey Sharp, Josh Triplett
2008-08-09 21:49 ` Scott Chacon
2008-08-10 3:51 ` Shawn O. Pearce
2008-08-10 11:20 ` Stephen R. van den Berg
2008-08-10 12:16 ` david
2008-08-10 14:50 ` Jan Hudec
2008-08-10 17:57 ` Stephen R. van den Berg
2008-08-10 18:11 ` Jan Hudec
2008-08-10 20:16 ` Stephen R. van den Berg
2008-08-10 22:34 ` Junio C Hamano
2008-08-10 23:10 ` david
2008-08-11 10:11 ` Stephen R. van den Berg
2008-08-16 6:21 ` Josh Triplett, Jamey Sharp
2008-08-16 7:56 ` david [this message]
2008-08-16 9:55 ` Junio C Hamano
2008-08-16 15:07 ` Jan Hudec
2008-08-18 6:12 ` Shawn O. Pearce
2008-08-18 23:06 ` Derek Fawcus
2008-08-18 23:18 ` Shawn O. Pearce
2008-08-18 23:23 ` Marcus Griep
2008-08-18 23:28 ` Shawn O. Pearce
2008-08-10 11:09 ` Jan Hudec
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=alpine.DEB.1.10.0808160046250.12859@asgard.lang.hm \
--to=david@lang.hm \
--cc=bulb@ucw.cz \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jamey@minilop.net \
--cc=josh@freedesktop.org \
--cc=schacon@gmail.com \
--cc=spearce@spearce.org \
--cc=srb@cuci.nl \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).