Re: RFC: Another proposed hash function transition plan
From: Ian Jackson <hidden>
Date: 2017-03-08 12:52:33
Linus Torvalds writes ("Re: RFC: Another proposed hash function transition plan"):Also, since 256 isn't evenly divisible by 6, and because you'd want some way to explictly disambiguate the new hashes, the rule *could* be that the ASCII representation of a new hash is the base64 encoding of the 258-bit value that has "10" prepended to it as padding. That way the first character of the hash would be guaranteed to not be a hex digit, because it would be in the range [g-v] (indexes 32..47).
We should arrange for this to be an uppercase, not a lowercase, letter, for the reasons I explained in my own proposal. To summarise: It would be undesirable to further increase the overlap between object names and ref names. Few people use uppercase in ref names because of the case-insensitive filesystem problem; so object names starting with uppercase ascii are distinct from most object names.
Of course, having written that, I now realize how it would cause problems for the usual shit-for-brains case-insensitive filesystems. So I guess base64 encoding doesn't work well for that reason.
AFAIAA object names occur in publicly-visible filenames only in notes tree objects, which are manipulated by git internally and do not necessarily need to appear in the filesystem. The filenames in .git/objects/ can be in whatever encoding we like, so are not an obstacle. Ian. -- Ian Jackson [off-list ref] These opinions are my own. If I emailed you from an address @fyvzl.net or @evade.org.uk, that is a private address which bypasses my fierce spamfilter.