diff options
author | Junio C Hamano <junkio@cox.net> | 2007-02-27 02:27:26 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-27 02:27:26 -0800 |
commit | 88459358cdd70246e805b0ee7db7fffb9564f80e (patch) | |
tree | 2bbb9cc6508fb5eb33e0d2fe1f70c5ada0bb7334 /git-remote.perl | |
parent | fee7c2c71d9e35b2f54aa3631072bd7f73bb7b4c (diff) | |
parent | 0ab179504a17907c395a4009f7c23d2f71bba1d3 (diff) | |
download | git-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-x | git-remote.perl | 37 |
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); } |