Subject: git branch -a now reports 'remotes/foo' rather than 'foo'?

From: Daniel Pittman <[email-masked]>
Date: Mon, 11 May 2009 12:16:43 +1000

G'day.  Debian recently released git 1.6.3 to unstable, so it has just
landed on my desk, and a change in the output of 'git branch' listings
is causing one of the front-ends I use to fail.

In previous versions, in a git-svn repository, I got this output to
'git branch -a':

,----[ git 1.6.2 and earlier ]
| ] git branch -a
| * master
|   tags/16-1
|   tags/18-1
|   tags/19-2
|   trunk
`----

Now, in 1.6.3, I see two different output formats:

,----[ git 1.6.3 ]
| ] git branch -a
| * master
|   remotes/tags/16-1
|   remotes/tags/18-1
|   remotes/tags/19-2
|   remotes/trunk
| ] git branch -r
|   tags/16-1
|   tags/18-1
|   tags/19-2
|   trunk
`----

The front-end I am using looks for a 'trunk' branch by name in the
output of 'git branch -a', which historically worked.  Now, though, it
shows that fully qualified.

Looking at the release notes it looks like this was a deliberate change,
from this entry:

* "git-branch -r" shows HEAD symref that points at a remote branch in
  interest of each tracked remote repository.

However, that isn't unambiguously clear about the change, and is pretty
light on the "why" parts.  Worse, the only discussion I can find about
the change suggests that this was noticed, and there wasn't real clarity
about the background.

(See Jeff King under "[PATCH 1/2] add basic branch display tests" at [1]
 for the details.)

I confess, to me, that having 'git branch -a' and 'git branch -r' emit
different values doesn't make much sense, but I suppose the upstream
code can be adapted.

I wanted to confirm that this was a deliberate change before I went to
the trouble or rewriting the front-end code however.

Regards,
        Daniel

Footnotes: 
[1]  http://thread.gmane.org/gmane.comp.version-control.git/110564/focus=110616