X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=git-remote.perl;h=d13e4c1fea93f0c345f6638bfd8a3715c73fa693;hb=68e6a4f80d4bea2d281c30fa2bbcd4968b0ccc4e;hp=b7c1e01d7d7d5dfb68870d65c0f0419138ccc506;hpb=6b4790db2432c0bc45586245fecaf04581499f73;p=git.git diff --git a/git-remote.perl b/git-remote.perl index b7c1e01d7..d13e4c1fe 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); @@ -229,13 +229,14 @@ sub prune_remote { my @v = $git->command(qw(rev-parse --verify), "$prefix/$to_prune"); $git->command(qw(update-ref -d), "$prefix/$to_prune", $v[0]); } + return 0; } 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); @@ -243,7 +244,8 @@ sub show_remote { print "* remote $name\n"; print " URL: $info->{'URL'}\n"; for my $branchname (sort keys %$branch) { - next if ($branch->{$branchname}{'REMOTE'} ne $name); + next unless (defined $branch->{$branchname}{'REMOTE'} && + $branch->{$branchname}{'REMOTE'} eq $name); my @merged = map { s|^refs/heads/||; $_; @@ -265,6 +267,7 @@ sub show_remote { print " Local branch(es) pushed with 'git push'\n"; print " @pushed\n"; } + return 0; } sub add_remote { @@ -320,7 +323,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"); @@ -335,13 +338,13 @@ sub rm_remote { } }; - my @refs = $git->command('for-each-ref', '--format=%(refname) %(objectname)', "refs/remotes/$name"); for (@refs) { ($ref, $object) = split; $git->command(qw(update-ref -d), $ref, $object); } + return 0; } sub add_usage { @@ -381,9 +384,11 @@ elsif ($ARGV[0] eq 'show') { print STDERR "Usage: git remote show \n"; exit(1); } + my $status = 0; for (; $i < @ARGV; $i++) { - show_remote($ARGV[$i], $ls_remote); + $status |= show_remote($ARGV[$i], $ls_remote); } + exit($status); } elsif ($ARGV[0] eq 'update') { if (@ARGV <= 1) { @@ -409,9 +414,11 @@ elsif ($ARGV[0] eq 'prune') { print STDERR "Usage: git remote prune \n"; exit(1); } + my $status = 0; for (; $i < @ARGV; $i++) { - prune_remote($ARGV[$i], $ls_remote); + $status |= prune_remote($ARGV[$i], $ls_remote); } + exit($status); } elsif ($ARGV[0] eq 'add') { my %opts = (); @@ -455,7 +462,7 @@ elsif ($ARGV[0] eq 'rm') { print STDERR "Usage: git remote rm \n"; exit(1); } - rm_remote($ARGV[1]); + exit(rm_remote($ARGV[1])); } else { print STDERR "Usage: git remote\n";