Subject: Re: git-checkout sometimes silently fails

From: "J. Bruce Fields" <[email-masked]>
Date: Wed, 7 May 2008 11:09:27 -0400

On Tue, May 06, 2008 at 05:19:01PM -0700, Junio C Hamano wrote:
> Andrew Morton <[email-masked]> writes:
> 
> > y:/usr/src/git26> git-branch -av | grep '^\*'
> > * master               5717922 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb
> > y:/usr/src/git26> git-checkout linux-next    
> > Switched to branch "linux-next"
> > y:/usr/src/git26> git-branch -av | grep '^\*'
> > * linux-next           5717922 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb
> 
> So your two local branches 'master' and 'linux-next' both point at the
> same commit, 5717922.
> 
> "git checkout <branchname>" is to check out the local branch name.  You
> expect "git checkout master" and then "git checkout linux-next" to check
> out two different commits because linux-next _should_ have been updated to
> the latest from sfr repository.  But it appears to me that that is not the
> case.
> 
> Perhaps "git fetch linux-next" hasn't been run, before "git checkout" was
> attempted?

Might also be worth checking whether there happens to be a tag (or
something else?) named the same as one of the branches?  I remember the
public -mm git repo, for example, having a tag named "master".  Yuch.

Grepping through git-for-each-ref output might shed some light.

--b.