summaryrefslogtreecommitdiff
path: root/git-branch-script
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2005-07-22 19:08:47 -0700
committerLibravatar Linus Torvalds <torvalds@g5.osdl.org>2005-07-22 20:34:16 -0700
commita38e727925bfad369fc98165f6ff161193397f28 (patch)
treeb24f30818110c5370d58add1200601969fca88cb /git-branch-script
parent[PATCH] Help scripts that use git-rev-parse to grok args with SP/TAB/LF (diff)
downloadtgif-a38e727925bfad369fc98165f6ff161193397f28.tar.xz
[PATCH] git-branch: avoid getting confused by empty or nonexisting branches.
When not specifying the start point explicitly, we ended up emitting ^0 in addition to the default HEAD. Be careful to see if we have "$2" before finding out which commit to base the new branch on. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-branch-script')
-rwxr-xr-xgit-branch-script8
1 files changed, 7 insertions, 1 deletions
diff --git a/git-branch-script b/git-branch-script
index ade0abf069..041ca515ae 100755
--- a/git-branch-script
+++ b/git-branch-script
@@ -3,7 +3,13 @@
. git-sh-setup-script || die "Not a git archive"
branchname="$1"
-rev=$(git-rev-parse --verify --default HEAD "$2"^0) || exit
+case "$2" in
+'')
+ head=HEAD ;;
+*)
+ head="$2^0" ;;
+esac
+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"