Skip to contentSkip to conversation

BUG: git remote show origin => error code 1

PATCH In review Jari Aalto 2 participants 4 messages Jun 15, 2016

lore
Share & tools
lore

Jari Aalto

author
#0 lore raw

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

Signature · 1 line
Welcome to FOSS revolution: we fix and modify until it shines
author
#1 lore raw

PATCH 1/1 prune, rm, show remote: exit with error code 1 on failure

- (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(-)
git-remote.perl +13 -6
index b7c1e01..84a9b5c 100755
@@ -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";
Signature · 1 line
1.5.3.2.81.g17ed
#2 lore raw

Re: [PATCH] prune, rm, show remote: exit with error code 1 on failure

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'.

#3 lore raw
In reply to Jari Aalto
Quoted 6 lines · Jari Aalto

Consider this:
...
Jari

Signature · 1 line
Welcome to FOSS revolution: we fix and modify until it shines

Patches are welcome ;-)