summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/config.txt4
-rw-r--r--Documentation/git-remote.txt10
-rwxr-xr-xgit-remote.perl13
3 files changed, 26 insertions, 1 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 3865535..d8e696f 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -439,6 +439,10 @@ pull.octopus::
pull.twohead::
The default merge strategy to use when pulling a single branch.
+remote.fetch::
+ The list of remotes which are fetched by "git remote update".
+ See gitlink:git-remote[1].
+
remote.<name>.url::
The URL of a remote repository. See gitlink:git-fetch[1] or
gitlink:git-push[1].
diff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt
index a60c31a..06ba2e6 100644
--- a/Documentation/git-remote.txt
+++ b/Documentation/git-remote.txt
@@ -13,6 +13,7 @@ SYNOPSIS
'git-remote' add <name> <url>
'git-remote' show <name>
'git-remote' prune <name>
+'git-remote' update
DESCRIPTION
-----------
@@ -40,7 +41,14 @@ Gives some information about the remote <name>.
Deletes all stale tracking branches under <name>.
These stale branches have already been removed from the remote repository
-referenced by <name>, but are still locally available in "remotes/<name>".
+referenced by <name>, but are still locally available in
+"remotes/<name>".
+
+'update'::
+
+Fetch updates for the remotes in the repository. By default all remotes
+are updated, but this can be configured via the configuration parameter
+'remote.fetch'. (See gitlink:git-config[1]).
DISCUSSION
diff --git a/git-remote.perl b/git-remote.perl
index c56c5a8..6e473ec 100755
--- a/git-remote.perl
+++ b/git-remote.perl
@@ -303,6 +303,18 @@ elsif ($ARGV[0] eq 'show') {
show_remote($ARGV[$i], $ls_remote);
}
}
+elsif ($ARGV[0] eq 'update') {
+ my $conf = $git->config("remote.fetch");
+ if (defined($conf)) {
+ @remotes = split(' ', $conf);
+ } else {
+ @remotes = sort keys %$remote;
+ }
+ for (@remotes) {
+ print "Fetching $_\n";
+ $git->command('fetch', "$_");
+ }
+}
elsif ($ARGV[0] eq 'prune') {
my $ls_remote = 1;
my $i;
@@ -360,5 +372,6 @@ else {
print STDERR " git remote add <name> <url>\n";
print STDERR " git remote show <name>\n";
print STDERR " git remote prune <name>\n";
+ print STDERR " git remote update\n";
exit(1);
}