threads / patch / 2881

patchFix unconditional early exit in cg-fetch

Subject: [PATCH] Fix unconditional early exit in cg-fetch

## tl;dr

3 messages between Dec 19, 2005 and Dec 20, 2005. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Paolo 'Blaisorblade' Giarrusso· Dec 19, 2005, 16:17 UTC · lore
From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

When invoking cg-fetch, after fetching tags it exits here, probably for an overlooked error handling (at least I corrected it this way).

This means, for instance, we exit without reporting the tag updates and without removing the "fetch in progress" marker - leading to unconditional "Recovering from interrupted fetch" at the very beginning with rsync transport. Indeed, this is fixed by this patch.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---
 cg-fetch |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to cg-fetch +2 −2
diff --git a/cg-fetch b/cg-fetch
index a2865ae..a489834 100755
--- a/cg-fetch
+++ b/cg-fetch
@@ -190,8 +190,8 @@ fetch_tags()
 
 	if [ "$get" = "get_rsync" ]; then
 		$get -i -s -u -d "$uri/refs/tags" "$_git/refs/tags" ||
-			echo "unable to get tags list (non-fatal)" >&2
-		exit $?
+			(echo "unable to get tags list (non-fatal)" >&2;
+			exit $?)
 	fi
 
 	git-ls-remote --tags "$uri" |
Junio C Hamano· Dec 20, 2005, 01:15 UTC · re: Paolo 'Blaisorblade' Giarrusso · lore

Re: [PATCH] Fix unconditional early exit in cg-fetch

Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> writes:
Show 7 quoted lines
>  	if [ "$get" = "get_rsync" ]; then
>  		$get -i -s -u -d "$uri/refs/tags" "$_git/refs/tags" ||
> -			echo "unable to get tags list (non-fatal)" >&2
> -		exit $?
> +			(echo "unable to get tags list (non-fatal)" >&2;
> +			exit $?)
>  	fi

Why would you want a subshell that exits with a non-zero status when nobody is checking that status anyway?

I suspect removing "exit $?" would suffice, if that condition is non-fatal as the message says...

Blaisorblade· Dec 20, 2005, 15:25 UTC · re: Junio C Hamano · lore

Re: [PATCH] Fix unconditional early exit in cg-fetch

On Tuesday 20 December 2005 02:15, Junio C Hamano wrote:
Show 8 quoted lines
> Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> writes:
> >  	if [ "$get" = "get_rsync" ]; then
> >  		$get -i -s -u -d "$uri/refs/tags" "$_git/refs/tags" ||
> > -			echo "unable to get tags list (non-fatal)" >&2
> > -		exit $?
> > +			(echo "unable to get tags list (non-fatal)" >&2;
> > +			exit $?)
> >  	fi
> Why would you want a subshell that exits with a non-zero status
> when nobody is checking that status anyway?

Argh, I should have used a proper conditional statement... I always forget bash is not Perl.

> I suspect removing "exit $?" would suffice, if that condition is
> non-fatal as the message says...

Likely you need to skip git-ls-remote (not sure however, but it's an exceptional condition).

return $? would be IMHO also fine - the caller is then free to ignore the return code.

I'm then resending the patch done the second way - feel free to merge any version.

-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade

	

	
		
___________________________________ 
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
http://mail.yahoo.it

← back to recent threads