X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-remote.perl;h=11630b1a8b03e9832d4c829b0e61d7a91ba43c77;hb=10455d2a955a29db1809be139177e4e298771eb0;hp=52013fe76dba73e19244fadf63f91677ce8e6a40;hpb=0220f1ebdee113e02031de0dba2d5e2c8623d6bb;p=git.git diff --git a/git-remote.perl b/git-remote.perl index 52013fe76..11630b1a8 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/||; $_; @@ -258,12 +260,14 @@ sub show_remote { if ($info->{'PUSH'}) { my @pushed = map { s|^refs/heads/||; + s|^\+refs/heads/|+|; s|:refs/heads/|:|; $_; } @{$info->{'PUSH'}}; print " Local branch(es) pushed with 'git push'\n"; print " @pushed\n"; } + return 0; } sub add_remote { @@ -297,9 +301,9 @@ sub update_remote { } elsif ($name eq 'default') { undef @remotes; for (sort keys %$remote) { - my $do_fetch = $git->config_boolean("remote." . $_ . + my $do_fetch = $git->config_bool("remote." . $_ . ".skipDefaultUpdate"); - if (!defined($do_fetch) || $do_fetch ne "true") { + unless ($do_fetch) { push @remotes, $_; } } @@ -318,9 +322,21 @@ sub add_usage { exit(1); } +local $VERBOSE = 0; +@ARGV = grep { + if ($_ eq '-v' or $_ eq '--verbose') { + $VERBOSE=1; + 0 + } else { + 1 + } +} @ARGV; + if (!@ARGV) { for (sort keys %$remote) { - print "$_\n"; + print "$_"; + print "\t$remote->{$_}->{URL}" if $VERBOSE; + print "\n"; } } elsif ($ARGV[0] eq 'show') { @@ -338,9 +354,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) { @@ -366,9 +384,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 = ();