From 6a9304021f41cd8319ccb009bb24792ffc5438bc Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sat, 13 Mar 2010 13:04:44 +0100 Subject: [PATCH] [git-tools] Improvements on prepare-commt-msg hook prepare-commit-hook now uses `git symbolic-ref HEAD` instead of reading $GIT_DIR/HEAD directly. This seems to be a more portable solution. Thanks to Chris (cs278/ToonArmy) for the suggestion. --- git-tools/hooks/prepare-commit-msg | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/git-tools/hooks/prepare-commit-msg b/git-tools/hooks/prepare-commit-msg index e1e05d67b8..354b539cc1 100755 --- a/git-tools/hooks/prepare-commit-msg +++ b/git-tools/hooks/prepare-commit-msg @@ -10,15 +10,25 @@ # # ln -s ../../git-tools/hooks/prepare-commit-msg \\ # .git/hooks/prepare-commit-msg -# -# Make sure it is executable. -# strip off ref: refs/heads/ -branch="$(cat $GIT_DIR/HEAD | sed 's/ref: refs\/heads\///g')" +# get branch name +branch="$(git symbolic-ref HEAD)" +# exit if no branch name is present +# (eg. detached HEAD) +if [ $? -ne 0 ] +then + exit +fi + +# strip off refs/heads/ +branch="$(echo "$branch" | sed "s/refs\/heads\///g")" + +# add [branchname] to commit message # * only run when normal commit is made (without -m or -F; # not a merge, etc.) # * also make sure the branch name begins with bug/ or feature/ -if [ "$2" = "" ] && [ $(echo "$branch" | grep -e '^\(bug\|feature\)/') ]; then - echo "[$branch] $(cat $1)" > "$1" +if [ "$2" = "" ] && [ $(echo "$branch" | grep -e "^\(bug\|feature\)/") ] +then + echo "[$branch] $(cat "$1")" > "$1" fi