git-branch.shon commit Fix 'git-show-branch --list <head>' (c9d023b)
   1#!/bin/sh
   2
   3. git-sh-setup || die "Not a git archive"
   4
   5usage () {
   6    echo >&2 "usage: $(basename $0)"' [<branchname> [start-point]]
   7
   8If no arguments, show available branches and mark current branch with a star.
   9If one argument, create a new branch <branchname> based off of current HEAD.
  10If two arguments, create a new branch <branchname> based off of <start-point>.
  11'
  12    exit 1
  13}
  14
  15case "$#" in
  160)
  17        headref=$(readlink "$GIT_DIR/HEAD" | sed -e 's|^refs/heads/||')
  18        git-rev-parse --symbolic --all |
  19        sed -ne 's|^refs/heads/||p' |
  20        sort |
  21        while read ref
  22        do
  23                if test "$headref" = "$ref"
  24                then
  25                        pfx='*'
  26                else
  27                        pfx=' '
  28                fi
  29                echo "$pfx $ref"
  30        done
  31        exit 0 ;;
  321)
  33        head=HEAD ;;
  342)
  35        head="$2^0" ;;
  36esac
  37branchname="$1"
  38
  39case "$branchname" in
  40-*)
  41        usage;;
  42esac
  43
  44rev=$(git-rev-parse --verify "$head") || exit
  45
  46[ -e "$GIT_DIR/refs/heads/$branchname" ] && die "$branchname already exists"
  47
  48echo $rev > "$GIT_DIR/refs/heads/$branchname"