Browse Source

git-remote: exit with non-zero status after detecting errors.

Some subcommands of "git-remote" detected and issued error
messages but did not signal that to the calling process with
exit status.

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jari Aalto 17 years ago committed by Junio C Hamano
parent
commit
f4bb20cc99
  1. 14
      git-remote.perl

14
git-remote.perl

@ -218,7 +218,7 @@ sub prune_remote {
my ($name, $ls_remote) = @_; my ($name, $ls_remote) = @_;
if (!exists $remote->{$name}) { if (!exists $remote->{$name}) {
print STDERR "No such remote $name\n"; print STDERR "No such remote $name\n";
return; return 1;
} }
my $info = $remote->{$name}; my $info = $remote->{$name};
update_ls_remote($ls_remote, $info); update_ls_remote($ls_remote, $info);
@ -229,13 +229,14 @@ sub prune_remote {
my @v = $git->command(qw(rev-parse --verify), "$prefix/$to_prune"); my @v = $git->command(qw(rev-parse --verify), "$prefix/$to_prune");
$git->command(qw(update-ref -d), "$prefix/$to_prune", $v[0]); $git->command(qw(update-ref -d), "$prefix/$to_prune", $v[0]);
} }
return 0;
} }


sub show_remote { sub show_remote {
my ($name, $ls_remote) = @_; my ($name, $ls_remote) = @_;
if (!exists $remote->{$name}) { if (!exists $remote->{$name}) {
print STDERR "No such remote $name\n"; print STDERR "No such remote $name\n";
return; return 1;
} }
my $info = $remote->{$name}; my $info = $remote->{$name};
update_ls_remote($ls_remote, $info); update_ls_remote($ls_remote, $info);
@ -265,6 +266,7 @@ sub show_remote {
print " Local branch(es) pushed with 'git push'\n"; print " Local branch(es) pushed with 'git push'\n";
print " @pushed\n"; print " @pushed\n";
} }
return 0;
} }


sub add_remote { sub add_remote {
@ -351,9 +353,11 @@ elsif ($ARGV[0] eq 'show') {
print STDERR "Usage: git remote show <remote>\n"; print STDERR "Usage: git remote show <remote>\n";
exit(1); exit(1);
} }
my $status = 0;
for (; $i < @ARGV; $i++) { for (; $i < @ARGV; $i++) {
show_remote($ARGV[$i], $ls_remote); $status |= show_remote($ARGV[$i], $ls_remote);
} }
exit($status);
} }
elsif ($ARGV[0] eq 'update') { elsif ($ARGV[0] eq 'update') {
if (@ARGV <= 1) { if (@ARGV <= 1) {
@ -379,9 +383,11 @@ elsif ($ARGV[0] eq 'prune') {
print STDERR "Usage: git remote prune <remote>\n"; print STDERR "Usage: git remote prune <remote>\n";
exit(1); exit(1);
} }
my $status = 0;
for (; $i < @ARGV; $i++) { for (; $i < @ARGV; $i++) {
prune_remote($ARGV[$i], $ls_remote); $status |= prune_remote($ARGV[$i], $ls_remote);
} }
exit($status);
} }
elsif ($ARGV[0] eq 'add') { elsif ($ARGV[0] eq 'add') {
my %opts = (); my %opts = ();

Loading…
Cancel
Save