threads / discuss / 23273

git branch -a prefixes origin/ branches with remotes/

Subject: git branch -a prefixes origin/ branches with remotes/

## tl;dr

7 messages between Mar 31, 2010 and Apr 1, 2010.

replies: 6people: 6as markdown or json

layer· Mar 31, 2010, 17:26 UTC · lore
In git 1.6.6.1 & 1.6.3.3, "git branch -a" output is like this
* master
  remotes/origin/foo
  ...
instead of like this for 1.6.1.3
* master
  origin/foo
  ...

Is this a feature or bug? I searched the mailing list archives and announcements couldn't find any reference to this change.

This is important to me because I use the output of "git branch -a" in scripts.

Thanks.
Kevin
Jakub Narebski· Mar 31, 2010, 17:52 UTC · re: layer · lore

Re: git branch -a prefixes origin/ branches with remotes/

layer <layer@known.net> writes:
Show 18 quoted lines
> In git 1.6.6.1 & 1.6.3.3, "git branch -a" output is like this
> 
> * master
>   remotes/origin/foo
>   ...
> 
> instead of like this for 1.6.1.3
> 
> * master
>   origin/foo
>   ...
> 
> 
> Is this a feature or bug?  I searched the mailing list archives and
> announcements couldn't find any reference to this change.
> 
> This is important to me because I use the output of "git branch -a" in
> scripts.

Don't use git-branch output in scripts; git-branch is porcelain and its output is meant for end user and is subject to change! Use either git-show-ref, or powerfull git-for-each-ref.

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Jay Soffian· Mar 31, 2010, 21:59 UTC · re: layer · lore

Re: git branch -a prefixes origin/ branches with remotes/

On Wed, Mar 31, 2010 at 1:26 PM, layer <layer@known.net> wrote:
Show 14 quoted lines
> In git 1.6.6.1 & 1.6.3.3, "git branch -a" output is like this
>
> * master
>  remotes/origin/foo
>  ...
>
> instead of like this for 1.6.1.3
>
> * master
>  origin/foo
>  ...
>
> Is this a feature or bug?  I searched the mailing list archives and
> announcements couldn't find any reference to this change.
Feature. Introduced in 1.6.3:
http://article.gmane.org/gmane.comp.version-control.git/116404
See "builtin-branch: improve output when displaying remote branches"
Show 6 quoted lines
> This is important to me because I use the output of "git branch -a" in
> scripts.
>
> I should add that the scripts are merely testing for the existence of
> remote tracking branches in the local repo.  If there's a better way
> to do this, I'm game.  Thanks.

git branch is a so-called porcelain command, and as you've now been bitten by, the output of porcelain's is subject to change.

You probably want git for-each-ref.

Aside, the only list of plumbing vs porcelain commands I'm aware of is in the bash-completion script under contrib. See __git_list_porcelain_commands here:

http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/completion/git-completion.bash

Those are generally commands whose output you do not want to be parsing. All the other git commands installed under git-core are mostly plumbing upon which you can build additional functionality.

(Note to git list: there should be a man page that has a single-line summary of each command and states whether the command is plumbing or porcelain. Maybe there is and I just don't know it.)

j.
Jeff King· Mar 31, 2010, 22:03 UTC · re: Jay Soffian · lore

Re: git branch -a prefixes origin/ branches with remotes/

On Wed, Mar 31, 2010 at 05:59:49PM -0400, Jay Soffian wrote:
Show 5 quoted lines
> Aside, the only list of plumbing vs porcelain commands I'm aware of is
> in the bash-completion script under contrib. See
> __git_list_porcelain_commands here:
> 
> http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/completion/git-completion.bash
Try command-list.txt, which is meant to be authoritative.
> (Note to git list: there should be a man page that has a single-line
> summary of each command and states whether the command is plumbing or
> porcelain. Maybe there is and I just don't know it.)

Try "man git", which splits the command list by porcelain and plumbing (and further by subcategory).

-Peff
Andreas Schwab· Mar 31, 2010, 22:04 UTC · re: Jay Soffian · lore

Re: git branch -a prefixes origin/ branches with remotes/

Jay Soffian <jaysoffian@gmail.com> writes:
> (Note to git list: there should be a man page that has a single-line
> summary of each command and states whether the command is plumbing or
> porcelain. Maybe there is and I just don't know it.)
git(1)
Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Jay Soffian· Mar 31, 2010, 22:09 UTC · re: Andreas Schwab · lore

Re: git branch -a prefixes origin/ branches with remotes/

On Wed, Mar 31, 2010 at 6:04 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
Show 7 quoted lines
> Jay Soffian <jaysoffian@gmail.com> writes:
>
>> (Note to git list: there should be a man page that has a single-line
>> summary of each command and states whether the command is plumbing or
>> porcelain. Maybe there is and I just don't know it.)
>
> git(1)
Yes, I'm an idiot. Anyone else wanna pile on? :-)
j.
Michael J Gruber· Apr 1, 2010, 09:17 UTC · re: Jay Soffian · lore

Re: git branch -a prefixes origin/ branches with remotes/

Jay Soffian venit, vidit, dixit 01.04.2010 00:09:
Show 10 quoted lines
> On Wed, Mar 31, 2010 at 6:04 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> Jay Soffian <jaysoffian@gmail.com> writes:
>>
>>> (Note to git list: there should be a man page that has a single-line
>>> summary of each command and states whether the command is plumbing or
>>> porcelain. Maybe there is and I just don't know it.)
>>
>> git(1)
> 
> Yes, I'm an idiot. Anyone else wanna pile on? :-)

Just blame it on April fool's day, you fooled everyone who took your remark seriously ;)

Michael

← back to recent threads