!/bin/sh # # An example hook script to prepare the commit log message. # Called by “git commit” with the name of the file that has the # commit message, followed by the description of the commit # message’s source. The hook’s purpose is to edit the commit # message file. If the hook fails with a non-zero status, # the commit is aborted. # # To enable this hook, rename this file to “prepare-commit-msg”.
# This hook includes three examples. The first one removes the # “# Please enter the commit message…” help message. # # The second includes the output of “git diff –name-status -r” # into the message, just before the “git status” output. It is # commented because it doesn’t cope with –amend or with squashed # commits. # # The third example adds a Signed-off-by line to the message, that can # still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1 COMMIT_SOURCE=$2 SHA1=$3
/usr/bin/perl -i.bak -ne ‘print unless(m/^. Please enter the commit message/..m/^#$/)’ “$COMMIT_MSG_FILE”
# case “$COMMIT_SOURCE,$SHA1” in # ,|template,) # /usr/bin/perl -i.bak -pe ‘ # print “n” . `git diff –cached –name-status -r` # if /^#/ && $first++ == 0’ “$COMMIT_MSG_FILE” ;; # *) ;; # esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n ‘s/^(.*>).*$/Signed-off-by: 1/p’) # git interpret-trailers –in-place –trailer “$SOB” “$COMMIT_MSG_FILE” # if test -z “$COMMIT_SOURCE” # then # /usr/bin/perl -i.bak -pe ‘print “n” if !$first_line++’ “$COMMIT_MSG_FILE” # fi