Re: Lets avoid the SHA-1 term (was [doc] User Manual Suggestion)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]