[PATCH] Do not create bogus branch from flag to git branch
If you run `git branch --help', you will unexpectedly have created a new branch named "--help". This simple patch adds logic and a usage statement to catch this and similar problems, and adds a testcase for it. Signed-off-by: Amos Waterland <apw@rossby.metr.ou.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
committed by
Junio C Hamano
parent
f0ebff0dfe
commit
a3b427b9fa
@ -2,6 +2,16 @@
|
||||
|
||||
. git-sh-setup || die "Not a git archive"
|
||||
|
||||
usage () {
|
||||
echo >&2 "usage: $(basename $0)"' [<branchname> [start-point]]
|
||||
|
||||
If no arguments, show available branches and mark current branch with a star.
|
||||
If one argument, create a new branch <branchname> based off of current HEAD.
|
||||
If two arguments, create a new branch <branchname> based off of <start-point>.
|
||||
'
|
||||
exit 1
|
||||
}
|
||||
|
||||
case "$#" in
|
||||
0)
|
||||
headref=$(readlink "$GIT_DIR/HEAD" | sed -e 's|^refs/heads/||')
|
||||
@ -25,6 +35,12 @@ case "$#" in
|
||||
head="$2^0" ;;
|
||||
esac
|
||||
branchname="$1"
|
||||
|
||||
case "$branchname" in
|
||||
-*)
|
||||
usage;;
|
||||
esac
|
||||
|
||||
rev=$(git-rev-parse --verify "$head") || exit
|
||||
|
||||
[ -e "$GIT_DIR/refs/heads/$branchname" ] && die "$branchname already exists"
|
||||
|
||||
Reference in New Issue
Block a user