From: Alex Riesen Date: Tue, 19 Jan 2010 15:54:26 GMT Subject: Re: [RFC/PATCHv8 00/10] git notes Message-ID: <81b0412b1001190754m37ed01b0nd93b318d77d88a75@mail.gmail.com> In-Reply-To: <7vk4xl1nkl.fsf@alter.siamese.dyndns.org> On Fri, Nov 20, 2009 at 11:46, Junio C Hamano 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?