Jon Smirl wrote:commit - SHA1 of its parent(s) and its root-tree, along with author info and a free-form field blob - content addressable by *multiple trees* file names - List of path-names inside a tree object. To draw some sort of relationship model here, you'd have commit 1<->M roottree tree M<->M tree tree M<->M blob Assuming SHA1 never collides (collisions rule out any form of storage, so we might as well hope it never happens), that leaves us with this: Each root tree can only ever belong to a single commit, unless you intentionally force git to make completely empty commits. git won't complain about this, so long as you don't make two in the same second, because it relies more heavily on the DAG than on developer sanity. Each root tree can point to multiple sub-trees. The sub-trees can be linked to any number of root-trees. Blobs can be linked to any number of tree objects, or even multiple times to the same tree object. This wouldn't be possible if the blob objects had their own pathnames stored inside them, so to speak. File names are not independant variables. They belong inside the table created for them, which is the tree objects. Do you realize that you're contradicting yourself in two upon each other following sentences here? Detecting renames after the fashion works fine. Not storing them is part of the "detect them by comparing diffs". Except that git init echo foo > a cp -a a b git add . git commit -m testing git count-objects yields 3 objects at the moment; A commit-object, a tree object and *one* blob object. With your scheme the 2 blob objects would differ, and there would be 4 of them. If you propose to ignore the path-name you have effectively broken support for having two identical files with different names in the same directory. Now, can you please tell me what gains you're hoping to see with this new layout of yours? -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Jeremy Allison | Re: [RFC] Heads up on sys_fallocate() |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Joerg Roedel | [PATCH 03/34] AMD IOMMU: add defines and structures for ACPI scanning code |
| Eric W. Biederman | [PATCH] powerpc pseries eeh: Convert to kthread API |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Natalie Protasevich | [BUG] New Kernel Bugs |
git: | |
