On 2009.04.27 08:02:02 -0500, Michael Witten wrote: > 2009/4/26 Björn Steinbrink <B.Steinbrink@xxxxxx>: > > > >> Do you agree that either 'id' or 'hash' would work fine? > > > > "object id" would work for me, but I'm fine with the existing "object > > name" as well. I don't like "object hash" (or "object hash id"), because > > it IMHO doesn't express that well that it's used to identify an object. > > However, the SHA-1 hash is not actually essential to git. In the git > world, there is only content and every object is identified by its > content. Now, to identify an object, it would be pretty cumbersome to > have to write out the contents, so we abbreviate the contents with a > hash. > > So, the hash or object name or object id or whatever you want to call > it isn't even an essential part to git. It is a convenience. > > In that sense, I think that '[cryptographic] hash' is the right term, > because the others ("object name" and "object id") seem special. A > hash is not special. In fact, the documentation should read "For > convenience, the git tools refer to objects using the hash value of > their contents". You see? It's not essential. "For convenience" means "To make it suck less for the user" to me. And that's why you can use an abbreviated object name as long as its unique. That a hash is used isn't essential for the basic data model, where commits reference trees which in turn reference other trees and blobs. To understand that model, it's not essential to know that hashes are used. But it is essential that some kind of identifier other than the whole content is used. Otherwise, the whole data model would make no sense at all. If you use the whole content to identify an object, that means that commits contain the whole trees which in turn contain the whole other trees and the whole blobs. So you could as well just have only commit objects, they contain everything anyway. So that we have the object name instead of the whole content _is_ essential. Björn -- 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