On Mon, Aug 20, 2007 at 08:40:13PM +0200, David Kastrup <dak@xxxxxxx> wrote: > Mike Hommey <mh@xxxxxxxxxxxx> writes: > > > On Mon, Aug 20, 2007 at 07:58:43PM +0200, David Kastrup <dak@xxxxxxx> wrote: > >> > I also never understood why there were no permissions set on > >> > directories in trees... > >> > >> Because directories are not actually tracked. They are created and > >> deleted as-needed. > > > > I don't see why it would prevent to have a permission set to > > it... the permission technically can be recorded in the parent tree, > > along its sha1. Filesystems are also like this. > > No, they aren't. Filesystems don't create and delete directories on > the fly. If we record any information about a directory, deleting it > automagically would not be appropriate since we would lose information > that has not been explicitly deleted. git doesn't magically create directories either. It actually stores something about them: the hash of the tree object that represents them. And it has permissions associated with these hashes. What it doesn't have, though, is tracking of the directory's history. (...) > > I think i wasn't clear enough... I just wondered why the format for tree > > entries is something like (if you'd write it in perl): > > sprintf "%06o %s\0%s", $mode, $file, pack("H[40]", $sha1) > > Now I am sure I don't get your point. See what a raw tree object looks like: git-cat-file tree 708453d64796eb617cb8a1602959e00356693315 Mike - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html