Re: bug? in checkout with ambiguous refnames
- From
Jeff King <peff@peff.net>
- Date
- Jan 12, 2011, 17:46 UTC
- Message-ID
- <20110112174600.GB31747@sigill.intra.peff.net>
- In-Reply-To
- <20110112091130.GC24920@pengutronix.de>
On Wed, Jan 12, 2011 at 10:11:30AM +0100, Uwe Kleine-König wrote:
Show 10 quoted lines
> > > So working copy and cache are at refs/tags/sgu/mxs-amba-uart, HEAD > > > points to refs/heads/sgu/mxs-amba-uart > > > > Yeah, we generally resolve ambiguities in favor of the tag (and that > > warning comes from deep within get_sha1_basic). So the real bug here is > > that it still said "Switched to branch", which is totally wrong. > I wonder how I can resolve the ambiguity when calling checkout. (Well > apart from changing either branch name or tag name) > > git checkout refs/heads/sgu/mxs-amba-uart results in a detached HEAD.
You can't disambiguate to the branch without going to a detached HEAD in the current code; it's just broken[1].
With the patch here:
http://article.gmane.org/gmane.comp.version-control.git/164986
it will disambiguate to the branch by default, and if you want the tag, you can do:
git checkout tags/sgu/mxs-amba-uart
-Peff
[1]: You can't do it with checkout, that is. You can still hack around
it with: branch=refs/heads/sgu/mxs-amba-uart
git read-tree -m -u $branch &&
git symbolic-ref HEAD $branchwhich is a simplified version of what checkout is doing.