#!/bin/sh # # This is a generic update hook script for GIT repositories. # Written by Martin Mares based on the template from GIT distribution. # # Called by git-receive-pack with arguments: refname sha1-old sha1-new # # Expects the following environment variables to be set: # # recipient where to send the mail reports to # sub_prefix prefix which should be prepended to mail subject # 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="[$sub_prefix]" else subj="[$sub_prefix:$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 -F/dev/null -x -e 'set charset="utf-8"; set send_charset="us-ascii:iso-8859-2:utf-8"' -s "$subj" "$recipient" <$out rm $out exit 0