lpath.el: Bind syntax-propertize-function for Emacs<=23, fbind string-to-syntax for...
[gnus] / etc / post-receive
index de7e28d..676b885 100755 (executable)
@@ -1,15 +1,13 @@
 #!/bin/sh
 
-# 2010-09-01 tzz@lifelogs.com
-
-# Use the email address of the author of the last commit.
-export USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
-export USER_NAME=$(git log -1 --format=format:%an HEAD)
+# modified: 2010-09-01 and on by tzz@lifelogs.com
 
 # the remainder is the standard git-core post-receive-email with some changes:
 
-# - USER_EMAIL is used in the header
-# - USER_NAME is used in the header
+# - USER_EMAIL and USER_NAME are used in the header
+# - 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
 
 # Copyright (c) 2007 Andy Parkins
 #
@@ -179,9 +177,13 @@ generate_email()
        # Email parameters
        # The email subject will contain the best description of the ref
        # 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_commit=$( (git log --format="%s" $oldrev...$newrev | perl -e'@p = <>; chomp @p; print "=", scalar @p, "= ", join(" ; ", @p)') 2>/dev/null)
+       describe_last=$(git describe $rev 2>/dev/null)
+
+       if [ -z "$describe_last" ]; then
+           describe=$describe_commit
+        else
+            describe="$describe_last $describe_commit"
        fi
 
        if [ -z "$describe" ]; then
@@ -207,12 +209,17 @@ generate_email()
 
 generate_email_header()
 {
+
+        # Use the email address of the author of the last commit.
+        export USER_EMAIL="$(git log -1 $short_refname --format=format:%ce HEAD)"
+        export USER_NAME="$(git log -1 $short_refname --format=format:%cn HEAD)"
+
        # --- Email (all stdout will be the email)
        # Generate header
        cat <<-EOF
        From: ${USER_NAME} <${USER_EMAIL}>
        To: $recipients
-       Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
+       Subject: $emailprefix $refname_type $short_refname ${change_type}d: $describe
        X-Git-Refname: $refname
        X-Git-Reftype: $refname_type
        X-Git-Oldrev: $oldrev
@@ -405,10 +412,6 @@ generate_update_branch_email()
 
        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
@@ -418,6 +421,11 @@ generate_update_branch_email()
                # 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