#!/bin/sh
#
# An example hook script to mail out commit update information.
# It also blocks tags that aren't annotated.
# Called by git-receive-pack with arguments: refname sha1-old sha1-new
#
# To enable this hook:
# (1) change the recipient e-mail address
# (2) make this file executable by "chmod +x update".
#

project=$(cat $GIT_DIR/description)
recipients="commit-list@somewhere.com commit-list@somewhereelse.com"

ref_type=$(git cat-file -t "$3")

# Only allow annotated tags in a shared repo
# Remove this code to treat dumb tags the same as everything else
case "$1","$ref_type" in
refs/tags/*,commit)
	echo "*** Un-annotated tags are not allowed in this repo" >&2
	echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate."
	exit 1;;
refs/tags/*,tag)
	echo "### Pushing version '${1##refs/tags/}' to the masses" >&2
	# recipients="release-announce@somwehere.com announce@somewhereelse.com"
	;;
esac

# set this  to 'cat' to get a very detailed listing.
# short only kicks in when an annotated tag is added
short='git shortlog'

# see 'date --help' for info on how to write this
# The default is a human-readable iso8601-like format with minute
# precision ('2006-01-25 15:58 +0100' for example)
date_format="%F %R %z"

(if expr "$2" : '0*$' >/dev/null
then
	# new ref
	case "$1" in
	refs/tags/*)
		# a pushed and annotated tag (usually) means a new version
		tag="${1##refs/tags/}"
		if [ "$ref_type" = tag ]; then
			eval $(git cat-file tag $3 | \
				sed -n '4s/tagger \([^>]*>\)[^0-9]*\([0-9]*\).*/tagger="\1" ts="\2"/p')
			date=$(date --date="1970-01-01 00:00:00 $ts seconds" +"$date_format")
			echo "Tag '$tag' created by $tagger at $date"
			git cat-file tag $3 | sed -n '5,$p'
			echo
		fi
		prev=$(git describe "$3^" | sed 's/-g.*//')
		# the first tag in a repo will yield no $prev
		if [ -z "$prev" ]; then
			echo "Changes since the dawn of time:"
			git rev-list --pretty $3 | $short
		else
			echo "Changes since $prev:"
			git rev-list --pretty $prev..$3 | $short
			echo ---
			git diff --stat $prev..$3
			echo ---
		fi
		;;

	refs/heads/*)
		branch="${1##refs/heads/}"
		echo "New branch '$branch' available with the following commits:"
		git-rev-list --pretty "$3" $(git-rev-parse --not --all)
		;;
	esac
else
	base=$(git-merge-base "$2" "$3")
	case "$base" in
	"$2")
		git diff --stat "$3" "^$base"
		echo
		echo "New commits:"
		;;
	*)
		echo "Rebased ref, commits from common ancestor:"
		;;
	esac
	git-rev-list --pretty "$3" "^$base"
fi) |
mail -s "$project: Changes to '${1##refs/heads/}'" $recipients
exit 0
