BUG: git remote show origin => error code 1
Consider this:
$ git remote show origin
No such remote origin $ echo $?
0Perhaps 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
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'.
--- git-remote.perl | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-)
git-remote.perl +13 -6
@@ -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
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'.
Quoted 6 lines · Jari Aalto
Consider this:
...
JariSignature · 1 line
Welcome to FOSS revolution: we fix and modify until it shines
Patches are welcome ;-)