threads / patch / 8598

patchpost-receive-email hook: handle order of arguments consistently

Subject: [PATCH] post-receive-email hook: handle order of arguments consistently

## tl;dr

4 messages between Jun 14, 2007 and Aug 7, 2007. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Gerrit Pape· Jun 14, 2007, 09:09 UTC · lore

The post-receive-email hook usually gets its arguments through stdin, but also supports them to be specified at the command line. The order of the arguments should consistently follow the documentation no matter how they are passed to the script.

This was noticed and suggested by martin f krafft through
 http://bugs.debian.org/428413
Signed-off-by: Gerrit Pape <pape@smarden.org>
---
 contrib/hooks/post-receive-email |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to contrib/hooks/post-receive-email +1 −1
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
index c589a39..f84532f 100644
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -605,7 +605,7 @@ envelopesender=$(git-repo-config hooks.envelopesender)
 if [ -n "$1" -a -n "$2" -a -n "$3" ]; then
 	# Output to the terminal in command line mode - if someone wanted to
 	# resend an email; they could redirect the output to sendmail themselves
-	PAGER= generate_email $2 $3 $1
+	PAGER= generate_email $1 $2 $3
 else
 	if [ -n "$envelopesender" ]; then
 		envelopesender="-f '$envelopesender'"
-- 
1.5.2.1
Andy Parkins· Jun 14, 2007, 10:19 UTC · re: Gerrit Pape · lore

Re: [PATCH] post-receive-email hook: handle order of arguments consistently

On Thursday 2007 June 14, Gerrit Pape wrote:
> The post-receive-email hook usually gets its arguments through stdin, but
> also supports them to be specified at the command line.  The order of the
> arguments should consistently follow the documentation no matter how they
> are passed to the script.

That wasn't done casually. It was done so that the same script would work as an update hook as well.

I have no objection to the change, as the update hook was not the right place for generating emails. However, it let me use that same update hook on a system that did not have a git with support for the post-receive hook.

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com
Gerrit Pape· Aug 7, 2007, 13:58 UTC · re: Andy Parkins · lore

The post-receive-email hook usually gets its arguments through stdin, but also supports them to be specified at the command line. The order of the arguments should consistently follow the documentation no matter how they are passed to the script.

This was noticed and suggested by martin f krafft through
 http://bugs.debian.org/428413
Signed-off-by: Gerrit Pape <pape@smarden.org>
---
On Thu, Jun 14, 2007 at 11:19:17AM +0100, Andy Parkins wrote:
Show 12 quoted lines
> On Thursday 2007 June 14, Gerrit Pape wrote:
> > The post-receive-email hook usually gets its arguments through stdin, but
> > also supports them to be specified at the command line.  The order of the
> > arguments should consistently follow the documentation no matter how they
> > are passed to the script.
> 
> That wasn't done casually.  It was done so that the same script would work as 
> an update hook as well.
> 
> I have no objection to the change, as the update hook was not the right place 
> for generating emails.  However, it let me use that same update hook on a 
> system that did not have a git with support for the post-receive hook.
Hi, I suggest to apply this patch for 1.5.3.  Thanks, Gerrit.
 contrib/hooks/post-receive-email |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to contrib/hooks/post-receive-email +1 −1
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
index c589a39..f84532f 100644
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -605,7 +605,7 @@ envelopesender=$(git-repo-config hooks.envelopesender)
 if [ -n "$1" -a -n "$2" -a -n "$3" ]; then
 	# Output to the terminal in command line mode - if someone wanted to
 	# resend an email; they could redirect the output to sendmail themselves
-	PAGER= generate_email $2 $3 $1
+	PAGER= generate_email $1 $2 $3
 else
 	if [ -n "$envelopesender" ]; then
 		envelopesender="-f '$envelopesender'"
-- 
1.5.3.GIT
Andy Parkins· Aug 7, 2007, 17:38 UTC · re: Gerrit Pape · lore

Re: [PATCH] post-receive-email hook: handle order of arguments consistently

On Tuesday 2007, August 07, Gerrit Pape wrote:
> The post-receive-email hook usually gets its arguments through stdin,
> but also supports them to be specified at the command line.  The order
> of the arguments should consistently follow the documentation no matter
> how they are passed to the script.

As I said the last time this was posted, this was done on purpose so that the command line arguments match the order of the arguments to the update hook.

Keeping them in that order allows the script to be used as an update hook in older versions of git.

Whether that is sensible or not is for Junio and the gang to decide; but there was good reason for doing it that way. Also, I'm not sure what documentation you're talking about - use in command line mode is a bonus feature anyway, it's not necessary in normal hook mode anyway. If you're going to be strict about matching documentation then the command line mode should be removed.

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com

← back to recent threads