Git development
 help / color / mirror / Atom feed
From: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
To: Jeff King <peff@peff.net>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>
Subject: Re: bug? in checkout with ambiguous refnames
Date: Sat, 8 Jan 2011 15:40:33 -0500 (EST)	[thread overview]
Message-ID: <alpine.DEB.1.10.1101081449220.12031@debian> (raw)
In-Reply-To: <20110107194909.GB6175@sigill.intra.peff.net>

On Fri, 7 Jan 2011, Jeff King wrote:

> On Fri, Jan 07, 2011 at 11:46:50AM +0100, Uwe Kleine-K?nig wrote:
> 
> > 	ukl@octopus:~/gsrc/linux-2.6$ git diff; git diff --cached
> > 
> > 	ukl@octopus:~/gsrc/linux-2.6$ git checkout sgu/mxs-amba-uart
> > 	warning: refname 'sgu/mxs-amba-uart' is ambiguous.
> > 	Previous HEAD position was c13fb17... Merge commit '65e29a85a419f9a161ab0f09f9d69924e36d940e' into HEAD
> > 	Switched to branch 'sgu/mxs-amba-uart'
> > 
> > OK, it might be a bad idea to have this ambiguity, still ...
> > [...]
> > 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.
> 
> That being said, it probably would make more sense for "git checkout" to
> prefer branches to tags.

What was the rationale for generally favoring tags? Why does that
reasoning not apply to 'git checkout' too? At least without knowing
the answer to that question, I think I would prefer to have checkout
behave the same as the other commands do. Maybe a bit academic, but it
seems like it would be nice if e.g. 'git checkout $anything && git
show $anything' would show the HEAD commit and if 'git checkout
$anything && git diff HEAD $anything' was always empty.

Btw, what exactly does "generally" mean, i.e. which other commands
don't favor tags? I know rebase is one example of a command that does
not favor tags.

Slightly off topic, but why does 'git rev-parse --symbolic-full-name'
not output anything when the input is ambiguous? 'git rev-parse'
without any flags favors tags, so I would have expected to get
something like refs/tags/$name back.

The reason I'm asking is because I just happened to see in the rebase
code the other day that it will rebase a detached head if the <branch>
parameter is not "completely unqualified". For example 'git rebase
master heads/topic' or 'git rebase master refs/heads/topic' will not
update refs/heads/topic. I was trying to fix that by using 'git
rev-parse --symbolic-full-name' to parse <branch>. That seemed to work
fine until I saw this thread :-).

  parent reply	other threads:[~2011-01-08 20:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-07 10:46 bug? in checkout with ambiguous refnames Uwe Kleine-König
2011-01-07 19:44 ` Junio C Hamano
2011-01-07 19:49 ` Jeff King
2011-01-07 19:54   ` Jeff King
2011-01-07 22:50     ` Junio C Hamano
2011-01-07 23:17       ` Junio C Hamano
2011-01-11  6:52         ` Jeff King
2011-01-11 17:02           ` Junio C Hamano
2011-01-11 18:02             ` Jeff King
2011-01-12  1:25               ` Jeff King
2011-01-12  9:07                 ` Junio C Hamano
2011-01-12 17:27                   ` Jeff King
2011-01-11  6:55     ` Jeff King
2011-01-11 19:20       ` Jeff King
2011-01-11 20:00         ` Jeff King
2011-01-08 20:40   ` Martin von Zweigbergk [this message]
2011-01-08 21:40     ` Jeff King
2011-01-09  2:43       ` Martin von Zweigbergk
2011-01-09  7:31       ` Junio C Hamano
2011-01-09 16:18         ` Martin von Zweigbergk
2011-01-12  9:11   ` Uwe Kleine-König
2011-01-12 17:46     ` Jeff King
2011-01-12 18:19       ` Uwe Kleine-König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.1.10.1101081449220.12031@debian \
    --to=martin.von.zweigbergk@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox