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 <ijackson@xxxxxxxxxxxxxxxxxxxxxx> 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.