From: Linus Torvalds Date: Tue, 03 May 2005 23:42:00 GMT Subject: Re: git and symlinks as tracked content Message-ID: In-Reply-To: <427806CA.6030302@zytor.com> On Tue, 3 May 2005, H. Peter Anvin wrote: > > No, the tree object *ALREADY* records these. Not ownership. Yes, the permissions are there, but if you actually want to track ownership (or things like "mtime" etc), you really do have to track it outside the tree object. Also, right now git will actually ignore most of the permission bits too. We can change that, and make it a dynamic setting somewhere (some flag in a ".git/settings" file or something), but it does boil down to the fact that a software development tree tracker wants different things than something that tracks system settings. For example, generating different trees just because different users had different umask settings clearly didn't work out. Which means that right now git really only tracks the "owner execute" bit of the permissions, and always resets the other bits to 0755 or 0644 depending on that _one_ bit. And similarly, tracking actual uid/gid information would _really_ not work for a distributed kernel source management system, so that's not even in the tree. So if you want to track system files, right now "raw git" is _not_ the way to do it. You'd want something else. Of course, that's actually true largely even of normal /dev contents. That's why we've moved towards udev, and having things like device permissions and ownership not be "filesystem attributes", but really _rules_ in a udev database. So the fact that git doesn't track them isn't necessarily a problem for /dev - since modern /dev really wants to track them at a higher level _anyway_ (and you'd use git to track the _rules_, not the ownership things themselves). But if you'd want to track other system directories with git, you'd probably need to either (a) do serious surgery on git itself, or (probably preferable) by (b) track the extra things you want "manually" using a file (that is tracked in git) that describes the ownership and permission data. Whether git is really suitable for tracking non-source projects is obviously debatable. It's not what it was designed for, and it _may_ be able to do so partly just by luck. Linus