Code

Don't smash stack when $GIT_ALTERNATE_OBJECT_DIRECTORIES is too long
[git.git] / git-remote.perl
index bd70bf1ddd663db7d0af49b8513fdf234767e422..576379912793c9740620892cd3ee1cf7d2f18cfe 100755 (executable)
@@ -15,6 +15,10 @@ sub add_remote_config {
                $hash->{$name}{'FETCH'} ||= [];
                push @{$hash->{$name}{'FETCH'}}, $value;
        }
+       elsif ($what eq 'push') {
+               $hash->{$name}{'PUSH'} ||= [];
+               push @{$hash->{$name}{'PUSH'}}, $value;
+       }
        if (!exists $hash->{$name}{'SOURCE'}) {
                $hash->{$name}{'SOURCE'} = 'config';
        }
@@ -44,7 +48,8 @@ sub add_remote_remotes {
                        }
                }
                elsif (/^Push:\s*(.*)$/) {
-                       ; # later
+                       $it->{'PUSH'} ||= [];
+                       push @{$it->{'PUSH'}}, $1;
                }
                elsif (/^Pull:\s*(.*)$/) {
                        $it->{'FETCH'} ||= [];
@@ -250,6 +255,15 @@ sub show_remote {
        if ($info->{'LS_REMOTE'}) {
                show_mapping($name, $info);
        }
+       if ($info->{'PUSH'}) {
+               my @pushed = map {
+                       s|^refs/heads/||;
+                       s|:refs/heads/|:|;
+                       $_;
+               } @{$info->{'PUSH'}};
+               print "  Local branch(es) pushed with 'git push'\n";
+               print "    @pushed\n";
+       }
 }
 
 sub add_remote {
@@ -283,9 +297,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, $_;
                        }
                }