On Fri, Nov 20, 2009 at 11:46, Junio C Hamano <gitster@xxxxxxxxx> wrote: > @@ -716,7 +719,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) > if (!strcmp(arg, "-")) > arg = "@{-1}"; > > - if (get_sha1(arg, rev)) { > + if (get_sha1_mb(arg, rev)) { > if (has_dash_dash) /* case (1) */ > die("invalid reference: %s", arg); > if (!patch_mode && This is a bit of a problem on Windows, as the arg (eventually containing something like "master..."), will be passed to resolve_ref below. Now, Windows, being the piece of shit it is, will lie and tell that a file "refs/heads/master..." exists and be same as "refs/heads/master". This breaks "checkout to merge base" on Windows and t2012 in particular. BTW, why should the arg be run through resolve_ref at all if get_sha1(_mb) has succeeded? Isn't the commit already resolved by lookup_commit_reference_gently? -- 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