#!/bin/sh
#
# Called by git-receive-pack with arguments: refname sha1-old sha1-new
#

recipient="sherlock-commits@host2.netcentrum.cz"

branch=${1#refs/heads/}
if [ "$branch" == "$1" ] ; then
	# Not something we care about
	exit 0
fi
if [ $branch == origin ] ; then
	# We are not following the origin
	exit 0
fi

out=`mktemp -t gitlog.XXXXXXX`
if [ $branch == master ] ; then
	subj="[GIT]"
else
	subj="[GIT:$branch]"
fi
exec >$out

if expr "$2" : '0*$' >/dev/null ; then
	echo "Created a new branch $branch, with the following commits:"
	echo
	git-rev-list --pretty --max-count=20 "$3"
	echo "(and possibly more)"
else
	base=$(git-merge-base "$2" "$3")
	case "$base" in
	"$2")
		echo "New commits to branch $branch:"
		;;
	*)
		echo "Rebased branch $branch, commits from common ancestor:"
		;;
	esac
	echo
	git-rev-list --pretty "$3" "^$base"
	git-diff -C "$base" "$3"
	t=`mktemp -t gitlog.XXXXXXX`
	git-diff --name-only -r "$base" "$3" >$t
	while read X ; do
		if [ ${#subj} -lt 80 ] ; then
			subj="$subj $X"
		fi
	done <$t
	rm $t
fi

exec >&2
mutt -x -e 'set charset="utf-8"; set send_charset="us-ascii:iso-8859-2:utf-8"' -s "$subj" "$recipient" <$out
rm $out
exit 0
