# BUG: git remote show origin => error code 1

4 messages from 2007-09-29 to 2007-09-30. Participants: Jari Aalto, Junio C Hamano.
Thread: https://gitlist.dev/t/10078

## Jari Aalto, 2007-09-29 18:13

Subject: BUG: git remote show origin => error code 1
Message-ID: <ps01nxvd.fsf@blue.sea.net>
URL: https://gitlist.dev/e/ps01nxvd.fsf%40blue.sea.net

```

Consider this:

    $ git remote show origin
    No such remote origin

    $ echo $?
    0

Perhaps the code should return non-zero in this case, so that shell
scripts could use construct:

    git remote show origin; || <another action>

Jari

-- 
Welcome to FOSS revolution: we fix and modify until it shines

```

## Junio C Hamano, 2007-09-29 22:28

Subject: Re: BUG: git remote show origin => error code 1
Message-ID: <7vhcldjeda.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vhcldjeda.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <ps01nxvd.fsf@blue.sea.net>

```
Jari Aalto <jari.aalto@cante.net> writes:

> Consider this:
> ...
> Jari
>
> -- 
> Welcome to FOSS revolution: we fix and modify until it shines

Patches are welcome ;-)

```

## Jari Aalto, 2007-09-30 06:18

Subject: [PATCH] prune, rm, show remote: exit with error code 1 on failure
Message-ID: <641soeuv.fsf@blue.sea.net>
URL: https://gitlist.dev/e/641soeuv.fsf%40blue.sea.net
In-Reply-To: <ps01nxvd.fsf@blue.sea.net>

```
- (rm_remote): Return error code 1 on failure.
- (show_remote): Return error code 1 on failure.
- (prune_remote): Return error code 1 on failure.
- (@ARGV eq show):
  exit in case of 'No such remote'.
- (@ARGV eq prune):
- exitin case of 'No such remote'.
- (@ARGV eq rm):
- exit in case of 'No such remote'.

Signed-off-by: Jari Aalto <jari.aalto AT cante.net>
---
 git-remote.perl |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/git-remote.perl b/git-remote.perl
index b7c1e01..84a9b5c 100755
--- a/git-remote.perl
+++ b/git-remote.perl
@@ -218,7 +218,7 @@ sub prune_remote {
 	my ($name, $ls_remote) = @_;
 	if (!exists $remote->{$name}) {
 		print STDERR "No such remote $name\n";
-		return;
+		return 1;
 	}
 	my $info = $remote->{$name};
 	update_ls_remote($ls_remote, $info);
@@ -235,7 +235,7 @@ sub show_remote {
 	my ($name, $ls_remote) = @_;
 	if (!exists $remote->{$name}) {
 		print STDERR "No such remote $name\n";
-		return;
+		return 1;
 	}
 	my $info = $remote->{$name};
 	update_ls_remote($ls_remote, $info);
@@ -320,7 +320,7 @@ sub rm_remote {
 	my ($name) = @_;
 	if (!exists $remote->{$name}) {
 		print STDERR "No such remote $name\n";
-		return;
+		return 1;
 	}
 
 	$git->command('config', '--remove-section', "remote.$name");
@@ -381,9 +381,12 @@ elsif ($ARGV[0] eq 'show') {
 		print STDERR "Usage: git remote show <remote>\n";
 		exit(1);
 	}
+	my $status = 0;
 	for (; $i < @ARGV; $i++) {
-		show_remote($ARGV[$i], $ls_remote);
+		my $ret = show_remote($ARGV[$i], $ls_remote);
+		$status = $ret if $ret;
 	}
+	exit($status);
 }
 elsif ($ARGV[0] eq 'update') {
 	if (@ARGV <= 1) {
@@ -409,9 +412,12 @@ elsif ($ARGV[0] eq 'prune') {
 		print STDERR "Usage: git remote prune <remote>\n";
 		exit(1);
 	}
+	my $status = 0;
 	for (; $i < @ARGV; $i++) {
-		prune_remote($ARGV[$i], $ls_remote);
+		my $ret = prune_remote($ARGV[$i], $ls_remote);
+                $status = $ret if $ret;
 	}
+        exit($status);
 }
 elsif ($ARGV[0] eq 'add') {
 	my %opts = ();
@@ -455,7 +461,8 @@ elsif ($ARGV[0] eq 'rm') {
 		print STDERR "Usage: git remote rm <remote>\n";
 		exit(1);
 	}
-	rm_remote($ARGV[1]);
+	my $status = rm_remote($ARGV[1]);
+        exit($status) if $status;
 }
 else {
 	print STDERR "Usage: git remote\n";
-- 
1.5.3.2.81.g17ed

```

## Junio C Hamano, 2007-09-30 09:54

Subject: Re: [PATCH] prune, rm, show remote: exit with error code 1 on failure
Message-ID: <7vve9sh41g.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vve9sh41g.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <641soeuv.fsf@blue.sea.net>

```
Thanks.

Because this is a bugfix patch, we would want the fix applied to
'maint' to become part of 1.5.3.4, but your patch contained the
fix for "remote rm" that is not (and will not be) part of 'maint'.

I split the patch into two, applied the bits without "rm" part
to 'maint', merged the result into 'master' and applied the fix
for "rm" on 'master'.

```
