diff options
author | Kalle Valo <Kalle.Valo@iki.fi> | 2005-08-16 20:58:10 +0300 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-08-17 12:11:36 -0700 |
commit | e4aec26f8068100ae7b496b904d013943626d8c2 (patch) | |
tree | 5ab5ddc5dd37f4aff665cd9eb9016b75eed8d484 /git-branch-script | |
parent | 22cff6a5abef29ce74da3e57ba3488d77686fec8 (diff) | |
download | git-e4aec26f8068100ae7b496b904d013943626d8c2.tar.gz git-e4aec26f8068100ae7b496b904d013943626d8c2.tar.xz |
[PATCH] Change git-branch to list branches
If no argument provided to `git branch`, show available branches and
mark current branch with star.
This is based on patch written by Amos Waterland <apw@rossby.metr.ou.edu>.
[jc: and I changed it to handle subdirectories under refs/heads/ as well.]
Signed-off-by: Kalle Valo <Kalle.Valo@iki.fi>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-branch-script')
-rwxr-xr-x | git-branch-script | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/git-branch-script b/git-branch-script index 041ca515a..a6dfeaf55 100755 --- a/git-branch-script +++ b/git-branch-script @@ -2,16 +2,31 @@ . git-sh-setup-script || die "Not a git archive" -branchname="$1" -case "$2" in -'') +case "$#" in +0) + headref=$(readlink "$GIT_DIR/HEAD" | sed -e 's|^refs/heads/||') + git-rev-parse --symbolic --all | + sed -ne 's|^refs/heads/||p' | + sort | + while read ref + do + if test "$headref" = "$ref" + then + pfx='*' + else + pfx=' ' + fi + echo "$pfx $ref" + done + exit 0 ;; +1) head=HEAD ;; -*) +2) head="$2^0" ;; esac +branchname="$1" rev=$(git-rev-parse --revs-only --verify "$head") || exit -[ -z "$branchname" ] && die "git branch: I want a branch name" [ -e "$GIT_DIR/refs/heads/$branchname" ] && die "$branchname already exists" echo $rev > "$GIT_DIR/refs/heads/$branchname" |