diff options
Diffstat (limited to 'git-branch.sh')
-rwxr-xr-x | git-branch.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/git-branch.sh b/git-branch.sh new file mode 100755 index 000000000..145a7b783 --- /dev/null +++ b/git-branch.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +. git-sh-setup || die "Not a git archive" + +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 --verify "$head") || exit + +[ -e "$GIT_DIR/refs/heads/$branchname" ] && die "$branchname already exists" + +echo $rev > "$GIT_DIR/refs/heads/$branchname" |