git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Karl Chen <quarl@cs.berkeley.edu>
To: Miklos Vajna <vmiklos@frugalware.org>
Cc: David Aguilar <davvid@gmail.com>, Git mailing list <git@vger.kernel.org>
Subject: Re: git-branch --print-current
Date: Sat, 03 Jan 2009 20:26:34 -0800	[thread overview]
Message-ID: <quack.20090103T2026.lth3afzg0hx@roar.cs.berkeley.edu> (raw)
In-Reply-To: <20090104033839.GD21154@genesis.frugalware.org> (Miklos Vajna's message of "Sun\, 4 Jan 2009 04\:38\:39 +0100")

>>>>> On 2009-01-03 19:38 PST, Miklos Vajna writes:

    Miklos> On Sat, Jan 03, 2009 at 06:18:36PM -0800, Karl Chen <quarl@cs.berkeley.edu> wrote:
    >> How about an option to git-symbolic-ref that gets rid of
    >> the refs/heads/ ?

    Miklos> Make an alias?

Thanks for the suggestion.  I don't have any problems making
aliases or using git-branch for interactive output; it's not an
issue of typing less.

I guess the broader point is that people use these "porcelain"
commands in scripts and parse their output even when they
shouldn't, and it's better to take action to prevent that.  This
reminds me of the issue of debugfs supposedly not being an ABI but
people rely on anyway since it's stable enough - people are
starting to rely on 'git branch' output just to print the current
branch name.  Better to create or at least publicly point out a
good alternative to nip this in the bud.

I suppose "user education" in the form of a big warning in the
git-branch man page would also help.  How do you even tell in the
man page whether a command is porcelain or not?  Still, I think
something like this is worth making slightly easier.  Another
minor argument for something like git branch --print-name is that
it's annoying to check the exit code inside a pipeline.

For example: Google for how to add the name of the git branch to
the bash prompt and you'll find countless examples of people using
git-branch.  And they're all different, so people aren't just
blindly copying one guy; here is a small sample:
     
    export PS1='...`git branch 2> /dev/null | grep -e ^* | sed
    -E  s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\
     
    $(git branch &>/dev/null; if [ $? -eq 0 ]; then echo "
    ($(git branch | grep '^*' |sed s/\*\ //))"; fi)
     
    `ruby -e \"print (%x{git branch 2>
    /dev/null}.grep(/^\*/).first || '').gsub(/^\* (.+)$/, '(\1)
    ')\"\`
     
    parse_git_branch() {
      git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
    }
     
    `git branch 2>/dev/null|cut -f2 -d\* -s`
     
    git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
     
    git_branch=`git branch 2>/dev/null | grep -e '^*' | sed -E 's/^\* (.+)$/(\1) /'`
     
There were a few using git-symbolic-ref but most used git-branch.

  reply	other threads:[~2009-01-04  4:27 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-02  3:28 git-branch --print-current Karl Chen
2009-01-02  4:26 ` David Aguilar
2009-01-04  2:18   ` Karl Chen
2009-01-04  3:38     ` Miklos Vajna
2009-01-04  4:26       ` Karl Chen [this message]
2009-01-04  5:17         ` Junio C Hamano
2009-01-04 12:34           ` git-rev-parse --symbolic-abbrev-name [was Re: git-branch --print-current] Karl Chen
2009-01-04 12:40             ` demerphq
2009-01-04 19:36             ` git-rev-parse --symbolic-abbrev-name Junio C Hamano
2009-01-04 20:23               ` Arnaud Lacombe
2009-01-04 22:38                 ` Miklos Vajna
2009-01-05  5:35                   ` Arnaud Lacombe
2009-01-05  6:45                     ` Miklos Vajna
2009-01-06  8:18                 ` Junio C Hamano
2009-01-07  4:58                   ` Arnaud Lacombe
2009-01-04 13:35           ` git-branch --print-current demerphq
2009-01-05  0:41             ` Junio C Hamano
2009-01-05  2:18               ` Shawn O. Pearce
2009-01-05  3:55                 ` Junio C Hamano
2009-01-05  5:50                   ` Jeff King
2009-01-04  8:21 ` Arnaud Lacombe
2009-01-04 12:40   ` Karl Chen
2009-01-04 12:49     ` demerphq
2009-01-04 17:55       ` Arnaud Lacombe
2009-01-04 18:02     ` Adeodato Simó
2009-01-04 21:48       ` Jakub Narebski
2009-01-04 10:07 ` Alexandre Dulaunoy
2009-01-04 12:31   ` demerphq

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=quack.20090103T2026.lth3afzg0hx@roar.cs.berkeley.edu \
    --to=quarl@cs.berkeley.edu \
    --cc=davvid@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=vmiklos@frugalware.org \
    /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;
as well as URLs for NNTP newsgroup(s).