Skip to content

Instantly share code, notes, and snippets.

@caulfield
Last active August 29, 2015 14:03
Show Gist options
  • Save caulfield/2f7fd952fa7ee48e3256 to your computer and use it in GitHub Desktop.
Save caulfield/2f7fd952fa7ee48e3256 to your computer and use it in GitHub Desktop.
git prepare commit message
#!/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".
ORIG_MSG_FILE="$1"
TEMP=`mktemp /tmp/git-XXXXX`
# Get issue number from branch name
NUMBER=`git rev-parse --abbrev-ref HEAD | grep -Eo '\-[0-9]*' | cut -c2-`
# Add issue number to tempfile
(echo "[ABBRV-$NUMBER]"; cat "$ORIG_MSG_FILE") > "$TEMP"
# Check number presence
if [ "$NUMBER" ]; then
cat "$TEMP" > "$ORIG_MSG_FILE"
fi
# "Conflicts:" part
case "$2,$3" in
merge,)
/usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$ORIG_MSG_FILE" ;;
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$1" ;;
*) ;;
esac
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment