Thanks for addressing my comments! M. On 10-07-13 05:18 PM, Kevin P. Fleming wrote: > We have become used to the features of svnmailer when used with Subversion, > and one of those useful features is that it can limit the maximum length > (in lines) of a commit email message. This is terribly useful since once the > goes beyond a reasonable number of lines, nobody is going to read the remainder, > and if they really want the entire contents of the commits, they can use > git itself to get them using the revision IDs present in the message already. > > Change the post-receive-email script to respond to an 'emailmaxlines' config key > which, if specified, will limit the number of lines generated (including > headers); any lines beyond the limit are suppressed, and a final line is added > indicating the number that were suppressed. > --- > contrib/hooks/post-receive-email | 33 ++++++++++++++++++++++++++++++++- > 1 files changed, 32 insertions(+), 1 deletions(-) > > diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email > index 30ae63d..d3b5fab 100755 > --- a/contrib/hooks/post-receive-email > +++ b/contrib/hooks/post-receive-email > @@ -55,6 +55,11 @@ > # "t=%s; printf 'http://.../?id=%%s' \$t; echo;echo; git show -C \$t; echo" > # Be careful if "..." contains things that will be expanded by shell "eval" > # or printf. > +# hooks.emailmaxlines > +# The maximum number of lines that should be included in the generated > +# email (including its headers). 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. > # > # Notes > # ----- > @@ -642,6 +647,27 @@ show_new_revisions() > } > > > +limit_lines() > +{ > + lines=0 > + skipped=0 > + while IFS="" read line > + do > + lines=$((lines + 1)) > + if [ $lines -gt $1 ] > + then > + skipped=$((skipped + 1)) > + else > + echo "$line" > + fi > + done > + if [ $skipped -ne 0 ] > + then > + echo "... $skipped lines suppressed ..." > + fi > +} > + > + > send_mail() > { > if [ -n "$envelopesender" ]; then > @@ -679,6 +705,7 @@ announcerecipients=$(git config hooks.announcelist) > envelopesender=$(git config hooks.envelopesender) > emailprefix=$(git config hooks.emailprefix || echo '[SCM] ') > custom_showrev=$(git config hooks.showrev) > +maxlines=$(git config hooks.emailmaxlines) > > # --- Main loop > # Allow dual mode: run from the command line just like the update hook, or > @@ -691,6 +718,10 @@ if [ -n "$1" -a -n "$2" -a -n "$3" ]; then > else > while read oldrev newrev refname > do > - generate_email $oldrev $newrev $refname | send_mail > + if [ -z "$maxlines" ]; then > + generate_email $oldrev $newrev $refname | send_mail > + else > + generate_email $oldrev $newrev $refname | limit_lines $maxlines | send_mail > + fi > done > fi -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html