Re: [PATCH] Corrected return values in post-receive-email.prep_for_email

Previous thread: URGENT AND PRIVATE by BROWN HEYMAN on Tuesday, December 7, 2010 - 1:55 am. (1 message)

Next thread: [PATCH] Improved error messages when temporary file creation fails by Arnout Engelen on Tuesday, December 7, 2010 - 11:16 am. (12 messages)
From: Alan Raison
Date: Tuesday, December 7, 2010 - 9:32 am

---
 contrib/hooks/post-receive-email |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/contrib/hooks/post-receive-email
b/contrib/hooks/post-receive-email
index 85724bf..020536d 100755
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -150,7 +150,7 @@ prep_for_email()
 			# Anything else (is there anything else?)
 			echo >&2 "*** Unknown type of update to $refname
($rev_type)"
 			echo >&2 "***  - no email generated"
-			return 0
+			return 1
 			;;
 	esac
 
@@ -166,10 +166,10 @@ prep_for_email()
 		esac
 		echo >&2 "*** $config_name is not set so no email will be
sent"
 		echo >&2 "*** for $refname update $oldrev->$newrev"
-		return 0
+		return 1
 	fi
 
-	return 1
+	return 0
 }
 
 #
-- 
1.7.3.1.msysgit.0

--

From: Thiago Farina
Date: Tuesday, December 7, 2010 - 9:50 am

Care to explain in the change log message why the return value should
be 1 instead of 0?

--

From: Alan Raison
Date: Tuesday, December 7, 2010 - 10:10 am

In the main loop (lines 734 and 738 in the current master) the && and || operations assume true==0 and false==1; in line with shell defaults.

I tested it on a sourceforge shell (I think using Bash); error conditions reported an error to standard error, then proceeded to generate the email; if prep_for_email succeeded then no mail was sent.

HTH

Alan

-----Original Message-----
From: Thiago Farina [mailto:tfransosi@gmail.com] 
Sent: 07 December 2010 16:50
To: Alan Raison
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Corrected return values in post-receive-email.prep_for_email

Care to explain in the change log message why the return value should
be 1 instead of 0?


--

From: Junio C Hamano
Date: Tuesday, December 7, 2010 - 12:34 pm

No sign-off, no description.

This is a regression introduced by 53cad69 (post-receive-email: ensure

This used to "exit 1" before 53cad69 and I agree with the patch that

This used to "exit 0" before 53cad69 to cause the program stop before
sending mails.  Again, I agree with the patch that signalling error is the

And this obviously is correct.

Kevin, care to review and Ack?  Alan, care to add a few lines of patch
description and sign-off?

Thanks.
--

From: Kevin P. Fleming
Date: Tuesday, December 7, 2010 - 12:44 pm

Acked-by: Kevin P. Fleming <kpfleming@digium.com>

Yeah, this is clearly my breakage; our internal version of this script 
is so different that it has become hard to backport fixes to the 
upstream version... or I just did a terrible job of it.

Alan, while you are in there fixing this, there is a remaining 'exit 0' 
in prep_for_email (at line 147) that should be 'return 1' instead.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming@digium.com
Check us out at www.digium.com & www.asterisk.org
--

From: Alan Raison
Date: Thursday, December 9, 2010 - 6:24 am

From ebe98d1c682f268b39a7eaf3ef529accbf0ac61c Mon Sep 17 00:00:00 2001
From: Alan Raison <alan@theraisons.me.uk>
Date: Mon, 6 Dec 2010 15:49:21 +0000
Subject: [PATCH] Corrected return values in prep_for_email;

Function was returning 0 for failure and 1 for success which was breaking
the logic in the main loop.

Corrected to return 0 for success, 1 for failure.  Function now also returns
in all cases, rather than exiting.
---
 contrib/hooks/post-receive-email |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/contrib/hooks/post-receive-email
b/contrib/hooks/post-receive-email
index 85724bf..f99ea95 100755
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -144,13 +144,13 @@ prep_for_email()
 			short_refname=${refname##refs/remotes/}
 			echo >&2 "*** Push-update of tracking branch,
$refname"
 			echo >&2 "***  - no email generated."
-			exit 0
+			return 1
 			;;
 		*)
 			# Anything else (is there anything else?)
 			echo >&2 "*** Unknown type of update to $refname
($rev_type)"
 			echo >&2 "***  - no email generated"
-			return 0
+			return 1
 			;;
 	esac
 
@@ -166,10 +166,10 @@ prep_for_email()
 		esac
 		echo >&2 "*** $config_name is not set so no email will be
sent"
 		echo >&2 "*** for $refname update $oldrev->$newrev"
-		return 0
+		return 1
 	fi
 
-	return 1
+	return 0
 }
 
 #
-- 
1.7.3.1.msysgit.0


--

From: Kevin P. Fleming
Date: Thursday, December 9, 2010 - 8:19 am

Your commit message will need a Signed-Off-By line, but...



-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming@digium.com
Check us out at www.digium.com & www.asterisk.org
--

From: Alan Raison
Date: Thursday, December 9, 2010 - 9:03 am

Function was returning 0 for failure and 1 for success which was breaking
the logic in the main loop.

Corrected to return 0 for success, 1 for failure.  Function now also returns
in all cases, rather than exiting.

Acked-By: Kevin P. Fleming <kpfleming@digium.com>
Signed-Off-By: Alan Raison <alan@theraisons.me.uk>
---
 contrib/hooks/post-receive-email |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/contrib/hooks/post-receive-email
b/contrib/hooks/post-receive-email
index 85724bf..f99ea95 100755
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -144,13 +144,13 @@ prep_for_email()
 			short_refname=${refname##refs/remotes/}
 			echo >&2 "*** Push-update of tracking branch,
$refname"
 			echo >&2 "***  - no email generated."
-			exit 0
+			return 1
 			;;
 		*)
 			# Anything else (is there anything else?)
 			echo >&2 "*** Unknown type of update to $refname
($rev_type)"
 			echo >&2 "***  - no email generated"
-			return 0
+			return 1
 			;;
 	esac
 
@@ -166,10 +166,10 @@ prep_for_email()
 		esac
 		echo >&2 "*** $config_name is not set so no email will be
sent"
 		echo >&2 "*** for $refname update $oldrev->$newrev"
-		return 0
+		return 1
 	fi
 
-	return 1
+	return 0
 }
 
 #
-- 
1.7.3.1.msysgit.0


--

From: Junio C Hamano
Date: Thursday, December 9, 2010 - 10:38 am

Just for reference---the order of events is that you signed-off first and
then Kevin acked the result, so the above is backwards.

Also your patch was linewrapped, but I can fix it up---no need to resend,
but please tell your MUA not to corrupt patches next time.
--

Previous thread: URGENT AND PRIVATE by BROWN HEYMAN on Tuesday, December 7, 2010 - 1:55 am. (1 message)

Next thread: [PATCH] Improved error messages when temporary file creation fails by Arnout Engelen on Tuesday, December 7, 2010 - 11:16 am. (12 messages)