> @@ -496,8 +496,8 @@ int find_unique_abbrev_r(char *hex, const unsigned char
> *sha1, int len)
> return 40;
> exists = has_sha1_file(sha1);
> while (len < 40) {
Here are two prime candidates for GIT_SHA1_HEXSZ, too.
> @@ -636,7 +636,7 @@ static int get_sha1_basic(const char *str, int len,
> unsigned char *sha1,
> int detached;
>
> if (interpret_nth_prior_checkout(str, len, &buf) > 0) {
> - detached = (buf.len == 40 && !get_sha1_hex(buf.buf,
> sha1));
> + detached = (!get_oid_hex(buf.buf, oid));
omitting the length check here?