Jakub Narebski <jnareb@xxxxxxxxx> wrote: > Dnia ?roda 3. czerwca 2009 23:53, Tony Finch napisa?: > > On Wed, 3 Jun 2009, Jakub Narebski wrote: > > > > > > Actually git accepts both lowercase and uppercase in HEXDIG (at least > > > for pkt-length), but it prefers lowercase. > > > > You should ensure that all hex digit strings follow the same rule. > > Are SHA-1 object names case insensitive too? > > > > Case insensitivity has a history of being awkward. SMTP has always had > > case-insensitive commands, though the RFCs have always written them in > > upper case and implementations have pretty much all emitted them in upper > > case. See http://tools.ietf.org/html/rfc5321#section-2.4 especially the > > caveat about broken case-sensitive implementations. > > There should be no problem with pkt-length being case insensitive, as > standard conversion routines (strtol, sprintf) accept 0-9a-fA-F for > base 16 / hexadecimal conversion. The requirement here is that client > and server SHOULD use lowercase, but MUST accept mixed case (do case > insensitive parsing of hex4). ACK. This is what C Git does today. JGit sends lower case, but is wrong by only accepting lowercase. I will patch it today to accept mixed case. > I think SHA-1 is lowercased, so mixed case should work there. Well, at > least "git show 6096D7" (note the uppercase 'D' in shortened SHA-1 name) > works as expected. ACK. Mixed case SHA-1 MUST be accepted, but lower case SHOULD be output. > But I do not know what are, or what should be protocol requirements. > Should SHA-1 use lowercase, or be case insensitive? SHA-1 SHOULD be lowercase (a-f), MUST accept a-f or A-F. > Should commands such as "have", "want", "done" use lower case or > be case insensitive? These MUST be lowercase. > Should status indicators "ACK" and "NAK" be upper case, These MUST be uppercase. Though "ACK %s continue" MUST be mixed case, as I just wrote it. > Should capabilities be case sensitive, and should they be > compared case sensitive or not? No, they are case sensitive. Why? All of the above is the current C code implementation. We have to follow what the code does today, and it does case sensitive compares almost everywhere... except in the SHA-1 parsing. -- Shawn. -- 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