From: "Josh England" <jjengla@sandia.gov>
To: "Linus Torvalds" <torvalds@linux-foundation.org>
Cc: "David Kastrup" <dak@gnu.org>, git@vger.kernel.org
Subject: Re: tracking perms/ownership
Date: Fri, 24 Aug 2007 12:15:17 -0600 [thread overview]
Message-ID: <1187979317.6357.155.camel@beauty> (raw)
In-Reply-To: <alpine.LFD.0.999.0708241039250.25853@woody.linux-foundation.org>
On Fri, 2007-08-24 at 10:51 -0700, Linus Torvalds wrote:
> Because full permissions and ownership (think ACL's) simply aren't
> "content" enough. The way to _reliably_ turn them into "content" that can
> be tracked, is to make it some form of file content.
>
> Because otherwise, you will always hit situations where you simply cannot
> access it sanely. Even as an administrator you might need to do some
> emergency fixup, but you may be on vacation, and the only thing you have
> access to is some machine that you're not root on - and you'd like to send
> a "git bundle" with the fix to your less-than-stellar stand-in that is
> knee-deep in sh*t because he doesn't know the system, and you're on some
> sunny tropical island.
Using the .gitattributes approach essentially does turn perms/ownership
into trackable content. A non-root user could specify the ownership of
certain files just by editing the .gitattributes, much in the same way a
non-root user can create an initramfs filesystem.
> Or just imagine the case where you have slightly different setups for
> different people - some have ACL's, some have just basic permissions. But
> you want to maintain an image that works for both cases. What do you do?
punt :) Simple unix ownership and perms are a good first cut. ACL's
could probably be handled in much the same way, but converting between
unix perms and ACLs might have to be a separate attribute/filter
entirely.
> See? If you just accept the fact that ownership and permissions are
> totally "separate content" that is tracked AS CONTENT, and not as the
> filesystem thing, you solve all these problems.
>
> > git is a content _tracker_. It tracks contents, also contents that
> > move around. If it can't track the permissions moving around as well,
> > it's sort of pointless to integrate this into git: if you have to
> > manage the stuff yourself, anyway, there is no point in creating the
> > illusion that it is done by git.
>
> Fair enough - I'll certainly agree with the notion that we don't
> necessarily need any integration of permissions/ownership into git at
> all, and you can always do it as a totally independent layer.
>
> > > Your choice. But I know which one I'd choose.
> >
> > That's fine. But you don't actually need git at all to implement your
> > choice, so this is orthogonal to whether having an option to do it
> > inside of git might be worth having.
>
> But I care about git having a *sane*design*, whether I use all the
> features or not. Because I simply care about my tools at a higher level
> than most users do. Which means that it doesn't matter whether I'll use
> permissions/ownership tracking or not - I still require that git do it
> *sanely* from my standpoint of having a good content tracker.
>
> And that means tracking those things *separately*, and not trying to mess
> up the "tree" structure, for example.
Do you think its OK to cache this stuff in the index, though?
write-tree could then just dump the perms/ownership out as gitattributes
somewhere.
-JE
next prev parent reply other threads:[~2007-08-24 18:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-21 17:14 empty directories Josh England
2007-08-21 17:40 ` Sean
2007-08-22 21:25 ` Josh England
2007-08-22 23:25 ` Linus Torvalds
2007-08-22 23:55 ` David Kastrup
2007-08-23 15:24 ` Josh England
2007-08-23 21:51 ` tracking perms/ownership [was: empty directories] Josh England
2007-08-23 22:08 ` tracking perms/ownership Junio C Hamano
2007-08-23 23:30 ` Linus Torvalds
2007-08-24 6:16 ` David Kastrup
2007-08-24 6:37 ` Linus Torvalds
2007-08-24 7:38 ` Josh England
2007-08-24 7:50 ` David Kastrup
2007-08-24 17:51 ` Linus Torvalds
2007-08-24 18:15 ` Josh England [this message]
2007-08-24 18:23 ` Linus Torvalds
2007-08-24 18:56 ` Josh England
2007-08-24 20:37 ` Junio C Hamano
2007-08-24 21:26 ` Josh England
2007-08-24 19:33 ` Robin Rosenberg
2007-08-24 21:30 ` David Kastrup
2007-08-24 7:22 ` Josh England
2007-08-24 7:39 ` Junio C Hamano
2007-08-24 8:19 ` Josh England
2007-08-24 16:11 ` Josh England
2007-08-24 16:27 ` Josh England
2007-08-24 9:38 ` tracking perms/ownership [was: empty directories] Johannes Schindelin
2007-08-24 9:52 ` Jeff King
2007-08-24 15:50 ` Josh England
2007-08-24 20:58 ` Jeff King
2007-08-25 14:31 ` Johannes Schindelin
2007-08-25 14:46 ` tracking perms/ownership Junio C Hamano
2007-08-25 19:35 ` Junio C Hamano
2007-08-24 10:05 ` tracking perms/ownership [was: empty directories] Jeff King
2007-08-25 14:30 ` Johannes Schindelin
2007-08-24 17:10 ` empty directories Jason Garber
2007-08-22 23:40 ` Jakub Narebski
2007-08-22 0:06 ` Jakub Narebski
2007-08-22 4:31 ` Salikh Zakirov
2007-08-22 18:46 ` Linus Torvalds
2007-08-22 19:12 ` David Kastrup
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=1187979317.6357.155.camel@beauty \
--to=jjengla@sandia.gov \
--cc=dak@gnu.org \
--cc=git@vger.kernel.org \
--cc=torvalds@linux-foundation.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 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).