From: Karl Chen <hidden> Date: 2016-06-15 22:45:52
quoted
quoted
quoted
quoted
On 2009-01-04 00:21 PST, Arnaud Lacombe writes:
Arnaud> FWIW, I had this in a stalled modification in a tree,
Arnaud> it just add the '-c' (as "current") option to git
Arnaud> branch. Patch is mostly for the record :/
Thanks, glad someone else wanted this too. If we modified
git-symbolic-ref it would probably be less code since it doesn't
have to loop over all branches, though from a UI perspective I
still prefer git-branch. Anyway doesn't look like people like the
idea so how about that git-rev-parse --symbolic-abbrev-name idea
:)
Arnaud> The main trouble I have with pipe stuff is that it
Arnaud> forks a process for something that can be done
Arnaud> natively. Previously, I was using awk(1) to extract
Arnaud> the current branch:
Arnaud> $ git branch | awk '/^\*/ {print $2}'
Yet another addition to the list of ways to pipeline it, this one
probably the shortest :)
[BTW, your patch mime type was application/octet-stream :(]
Arnaud> FWIW, I had this in a stalled modification in a tree,
Arnaud> it just add the '-c' (as "current") option to git
Arnaud> branch. Patch is mostly for the record :/
Thanks, glad someone else wanted this too. If we modified
git-symbolic-ref it would probably be less code since it doesn't
have to loop over all branches, though from a UI perspective I
still prefer git-branch. Anyway doesn't look like people like the
idea so how about that git-rev-parse --symbolic-abbrev-name idea
:)
FWIW: I like the idea. Ive always thought that a --current flag to git
branch was missing. IOW i should be able to do:
branch=`git branch --current`
and get back a usable branch name. I dont think one should need to
rely on awk or sed or scripts to find this out, if only for
portability reasons.
Arnaud> The main trouble I have with pipe stuff is that it
Arnaud> forks a process for something that can be done
Arnaud> natively. Previously, I was using awk(1) to extract
Arnaud> the current branch:
Arnaud> $ git branch | awk '/^\*/ {print $2}'
Yet another addition to the list of ways to pipeline it, this one
probably the shortest :)
Unfortunately it doesnt work well when you arent on a branch:
$ git branch | awk '/^\*/ {print $2}'
(no
So far two apparently expert git people have given solutions to this
problem that don't elegantly handle the edge cases.
That seems to me to be a powerful argument that it is actually more
difficult to do than is being represented here on the list, and
deserves to be native level git functionality.
Cheers,
yves
--
perl -Mre=debug -e "/just|another|perl|hacker/"
Hi,
On Sun, Jan 4, 2009 at 7:49 AM, demerphq [off-list ref] wrote:
2009/1/4 Karl Chen [off-list ref]:
quoted
On 2009-01-04 00:21 PST, Arnaud Lacombe writes:
Arnaud> $ git branch | awk '/^\*/ {print $2}'
Yet another addition to the list of ways to pipeline it, this one
probably the shortest :)
Unfortunately it doesnt work well when you arent on a branch:
$ git branch | awk '/^\*/ {print $2}'
(no
So far two apparently expert git people have given solutions to this
problem that don't elegantly handle the edge cases.
Yet another addition to the list of ways to pipeline it, this one
probably the shortest :)
Heh, if we're playing golf:
$ git branch | sed -n 's/^\* //p'
--
Adeodato Simó dato at net.com.org.es
Debian Developer adeodato at debian.org
Que no te vendan amor sin espinas
-- Joaquín Sabina, Noches de boda
From: Jakub Narebski <hidden> Date: 2016-06-15 22:45:52
Adeodato Simó [off-list ref] writes:
* Karl Chen [Sun, 04 Jan 2009 04:40:51 -0800]:
quoted
Arnaud> $ git branch | awk '/^\*/ {print $2}'
quoted
Yet another addition to the list of ways to pipeline it, this one
probably the shortest :)
Heh, if we're playing golf:
$ git branch | sed -n 's/^\* //p'
Even if you want to reimplement __git_ps1 provided with bash
completion in completion/git-completion.bash instead of reusing it,
you still have to deal with many situations: not being in git
repository, being on detached HEAD, being in intermediate state
(during git-am, git-rebase, git-bisect etc.), etc. Additionally you
would probably want name of git repository and relative path inside
git repository in prompt.
Therefore you need to use script anyway. And for scripting you should
use plumbing (which output format shouldn't change) and not porcelain
git-branch (which output might change, for example having '-v' on by
default, or something; and you might have color.ui set to true by
mistake and have to deal with color codes). And then you don't need
sed nor awk: POSIX shell features would be enough:
BR=$(git symbolic-ref HEAD 2>/dev/null)
BR=${BR#refs/heads/}
BR=${BR:-HEAD} # one of possibilities to show detached HEAD / no branch
--
Jakub Narebski
Poland
ShadeHawk on #git