# the remainder is the standard git-core post-receive-email with some changes:
# - USER_EMAIL and USER_NAME are used in the header
-# - without annotations, we use `git log -1 --format=oneline' to generate the change summary (which could miss multiple changes)
+# - the update message is after the diff
+# - without annotations, we use `git log --format=oneline' to generate the change summary (joining multiples with semicolons)
+# - the subject is shorter and prefixed with [gnus git] always
# Copyright (c) 2007 Andy Parkins
#
# that we can build from the parameters
describe=$(git describe $rev 2>/dev/null)
if [ -z "$describe" ]; then
- describe=$(git log -1 --format=oneline $rev 2>/dev/null)
+ describe=$((git log --format="%s" $oldrev...$newrev | perl -e'@p = <>; chomp @p; print "=", scalar @p, "= ", join(" ; ", @p)') 2>/dev/null)
fi
if [ -z "$describe" ]; then
cat <<-EOF
From: ${USER_NAME} <${USER_EMAIL}>
To: $recipients
- Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
+ Subject: [gnus git] $refname_type $short_refname ${change_type}d: $describe
X-Git-Refname: $refname
X-Git-Reftype: $refname_type
X-Git-Oldrev: $oldrev
echo ""
if [ -z "$rewind_only" ]; then
- echo "Those revisions listed above that are new to this repository have"
- echo "not appeared on any other notification email; so we list those"
- echo "revisions in full, below."
-
echo ""
echo $LOGBEGIN
show_new_revisions
# revisions added by this update" message
echo $LOGEND
+
+ echo "Those revisions listed above that are new to this repository have"
+ echo "not appeared on any other notification email; so we listed those"
+ echo "revisions in full, above."
+
else
echo "No new revisions were added by this update."
fi