dir.c: replace is_path_excluded with now equivalent is_excluded API
[gitweb.git] / contrib / hooks / post-receive-email
index 21989fc6ab84c0503cdc9418673d9d0bf06f9d49..0e5b72d7f19185c3b6b36150085d475c7ef15db4 100755 (executable)
 # will have put this somewhere standard.  You should make this script
 # executable then link to it in the repository you would like to use it in.
 # For example, on debian the hook is stored in
-# /usr/share/doc/git-core/contrib/hooks/post-receive-email:
+# /usr/share/git-core/contrib/hooks/post-receive-email:
 #
 #  chmod a+x post-receive-email
 #  cd /path/to/your/repository.git
-#  ln -sf /usr/share/doc/git-core/contrib/hooks/post-receive-email hooks/post-receive
+#  ln -sf /usr/share/git-core/contrib/hooks/post-receive-email hooks/post-receive
 #
 # This hook script assumes it is enabled on the central repository of a
 # project, with all users pushing only to it and not between each other.  It
 #   email body. If not specified, there is no limit.
 #   Lines beyond the limit are suppressed and counted, and a final
 #   line is added indicating the number of suppressed lines.
+# hooks.diffopts
+#   Alternate options for the git diff-tree invocation that shows changes.
+#   Default is "--stat --summary --find-copies-harder". Add -p to those
+#   options to include a unified diff of changes in addition to the usual
+#   summary output.
 #
 # Notes
 # -----
@@ -80,7 +85,6 @@ prep_for_email()
        oldrev=$(git rev-parse $1)
        newrev=$(git rev-parse $2)
        refname="$3"
-       maxlines=$4
 
        # --- Interpret
        # 0000->1234 (create)
@@ -233,6 +237,7 @@ generate_email_header()
        X-Git-Reftype: $refname_type
        X-Git-Oldrev: $oldrev
        X-Git-Newrev: $newrev
+       Auto-Submitted: auto-generated
 
        This is an automated email from the git hooks/post-receive script. It was
        generated because a ref change was pushed to the repository containing
@@ -399,7 +404,7 @@ generate_update_branch_email()
                        echo "            \\"
                        echo "             O -- O -- O ($oldrev)"
                        echo ""
-                       echo "The removed revisions are not necessarilly gone - if another reference"
+                       echo "The removed revisions are not necessarily gone - if another reference"
                        echo "still refers to them they will stay in the repository."
                        rewind_only=1
                else
@@ -446,7 +451,7 @@ generate_update_branch_email()
        # non-fast-forward updates.
        echo ""
        echo "Summary of changes:"
-       git diff-tree --stat --summary --find-copies-harder $oldrev..$newrev
+       git diff-tree $diffopts $oldrev..$newrev
 }
 
 #
@@ -456,7 +461,7 @@ generate_delete_branch_email()
 {
        echo "       was  $oldrev"
        echo ""
-       echo $LOGEND
+       echo $LOGBEGIN
        git show -s --pretty=oneline $oldrev
        echo $LOGEND
 }
@@ -556,7 +561,7 @@ generate_delete_atag_email()
 {
        echo "       was  $oldrev"
        echo ""
-       echo $LOGEND
+       echo $LOGBEGIN
        git show -s --pretty=oneline $oldrev
        echo $LOGEND
 }
@@ -621,7 +626,7 @@ generate_delete_general_email()
 {
        echo "       was  $oldrev"
        echo ""
-       echo $LOGEND
+       echo $LOGBEGIN
        git show -s --pretty=oneline $oldrev
        echo $LOGEND
 }
@@ -723,6 +728,8 @@ envelopesender=$(git config hooks.envelopesender)
 emailprefix=$(git config hooks.emailprefix || echo '[SCM] ')
 custom_showrev=$(git config hooks.showrev)
 maxlines=$(git config hooks.emailmaxlines)
+diffopts=$(git config hooks.diffopts)
+: ${diffopts:="--stat --summary --find-copies-harder"}
 
 # --- Main loop
 # Allow dual mode: run from the command line just like the update hook, or