#!/usr/bin/perl
# Parses list of remotes in doc/git.mdwn, configures git to use them
-# all, and fetches updates from them.
-
-my $error=0;
+# all. After running this, use "git remote update --prune" to pull
+# updates from all remotes.
open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
while (<IN>) {
# check configured url to deal with it changing
my $info=`git remote show -n $remote`;
my ($oldurl)=$info=~/URL: (.*)/m;
- my $r;
if ($oldurl ne $url) {
system("git remote rm $remote 2>/dev/null");
- $r = system("git", "remote", "add", "-f", $remote, $url)
- }
- else {
- $r = system("git", "fetch", "--no-tag", $remote);
+ system("git", "remote", "add", "-f", $remote, $url)
}
-
- if ($r != 0) {
- print "$remote failed\n";
- }
- $error |= $r;
-
- # drop stale tracking branches
- system("git", "remote", "prune", $remote);
}
}
close IN;
-
-exit $error;