aboutsummaryrefslogtreecommitdiff
path: root/git-remote.perl
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-02-27 02:27:26 -0800
committerJunio C Hamano <junkio@cox.net>2007-02-27 02:27:26 -0800
commit88459358cdd70246e805b0ee7db7fffb9564f80e (patch)
tree2bbb9cc6508fb5eb33e0d2fe1f70c5ada0bb7334 /git-remote.perl
parentfee7c2c71d9e35b2f54aa3631072bd7f73bb7b4c (diff)
parent0ab179504a17907c395a4009f7c23d2f71bba1d3 (diff)
downloadgit-88459358cdd70246e805b0ee7db7fffb9564f80e.tar.gz
git-88459358cdd70246e805b0ee7db7fffb9564f80e.tar.xz
Merge branch 'np/types' into jc/fetch
* np/types: (253 commits) get rid of lookup_object_type() convert object type handling from a string to a number formalize typename(), and add its reverse type_from_string() sha1_file.c: don't ignore an error condition in sha1_loose_object_info() sha1_file.c: cleanup "offset" usage sha1_file.c: cleanup hdr usage git-apply: do not fix whitespaces on context lines. diff --cc: integer overflow given a 2GB-or-larger file mailinfo: do not get confused with logical lines that are too long. Documentation: link in 1.5.0.2 material to the top documentation page. Documentation: document remote.<name>.tagopt GIT 1.5.0.2 git-remote: support remotes with a dot in the name Documentation: describe "-f/-t/-m" options to "git-remote add" diff --cc: fix display of symlink conflicts during a merge. merge-recursive: fix longstanding bug in merging symlinks merge-index: fix longstanding bug in merging symlinks diff --cached: give more sensible error message when HEAD is yet to be created. Update tests to use test-chmtime Add test-chmtime: a utility to change mtime on files ...
Diffstat (limited to 'git-remote.perl')
-rwxr-xr-xgit-remote.perl37
1 files changed, 36 insertions, 1 deletions
diff --git a/git-remote.perl b/git-remote.perl
index c56c5a84a..bd70bf1dd 100755
--- a/git-remote.perl
+++ b/git-remote.perl
@@ -67,7 +67,7 @@ sub list_remote {
$git->command(qw(config --get-regexp), '^remote\.');
};
for (@remotes) {
- if (/^remote\.([^.]*)\.(\S*)\s+(.*)$/) {
+ if (/^remote\.(\S+?)\.([^.\s]+)\s+(.*)$/) {
add_remote_config(\%seen, $1, $2, $3);
}
}
@@ -274,6 +274,31 @@ sub add_remote {
}
}
+sub update_remote {
+ my ($name) = @_;
+
+ my $conf = $git->config("remotes." . $name);
+ if (defined($conf)) {
+ @remotes = split(' ', $conf);
+ } elsif ($name eq 'default') {
+ undef @remotes;
+ for (sort keys %$remote) {
+ my $do_fetch = $git->config_boolean("remote." . $_ .
+ ".skipDefaultUpdate");
+ if (!defined($do_fetch) || $do_fetch ne "true") {
+ push @remotes, $_;
+ }
+ }
+ } else {
+ print STDERR "Remote group $name does not exists.\n";
+ exit(1);
+ }
+ for (@remotes) {
+ print "Updating $_\n";
+ $git->command('fetch', "$_");
+ }
+}
+
sub add_usage {
print STDERR "Usage: git remote add [-f] [-t track]* [-m master] <name> <url>\n";
exit(1);
@@ -303,6 +328,15 @@ elsif ($ARGV[0] eq 'show') {
show_remote($ARGV[$i], $ls_remote);
}
}
+elsif ($ARGV[0] eq 'update') {
+ if (@ARGV <= 1) {
+ update_remote("default");
+ exit(1);
+ }
+ for ($i = 1; $i < @ARGV; $i++) {
+ update_remote($ARGV[$i]);
+ }
+}
elsif ($ARGV[0] eq 'prune') {
my $ls_remote = 1;
my $i;
@@ -360,5 +394,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 [group]\n";
exit(1);
}