Subject: Re: [PATCH] Convert emailing part of hooks--update to hooks--post-receive

From: Andy Parkins <[email-masked]>
Date: Sun, 25 Mar 2007 08:51:02 +0000

On Sunday 2007, March 25, Junio C Hamano wrote:

> I think you can do something along the following line.
>
>  (1) You say "for-each-ref --all" to get the ref information
>      that is after update.

Would you mind if I delayed that to a separate patch?  It's a 
significant difference from the original update hook, so I think it's 
worth having that change separately documented.

> Sorry, what I meant was:
>
> 	git show -s --pretty=oneline "$oldrev"

Ah - no problem.  Done.

> Actually it was not quite "nicely done".  If taggername has an
> unusual character then dq pair you hard coded there may not
> quote the string correctly.

Devious.  Fixed as you suggest.

> > (Andreas Ericsson   54)  prev=$(git describe "$3^" | sed
> > 's/-g.*//')
>
> You could describe all the parents and see if they differ.  If
> they reach different tag, we could see which one is newer.  Or
> something like that.  In the special (but usual) case of a
> single parent commit, "describing all the parents" is what you
> are already doing, so it is not any more expensive in the normal
> case.

Again; I think I'll fix that one as a separate patch as it is a change 
from the behaviour of hooks/update.

> Please do not have cat on either side of a pipe.  That makes a
> shell script look ... eh, you know the word ;-).
>
> 	sed -e 1q "$GIT_DIR/description"

Done.  I've taken the liberty of adding a pipe-to-cat, that I hope 
you'll forgive...

# Output to the terminal in command line mode - if someone wanted to
# resend an email; they could redirect the output to sendmail themselves
  generate_email $2 $3 $1 | cat

This is to force the deactivation of the pager for all the git commands 
that generate_email calls.

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
[email-masked]