]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - gitremotes
a different alternative
[git.ikiwiki.info.git] / gitremotes
index b144909243f702d04c95822ee6ce163e73896c54..5cafad1b8dcb550c694567b7815978a7861fc6fe 100755 (executable)
@@ -1,12 +1,11 @@
 #!/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>) {
-       if (/^\*\s+\[\[(\w+)\]\]\s+<([^>]+)>/) {
+       if (/^\*\s+\[?\[?(\w+)(?:\|\w+)?\]?\]?\s+`([^>]+)`/) {
                # note that the remote name has to be a simple word (\w)
                # for security/sanity reasons
                my $remote=$1;
@@ -17,13 +16,11 @@ while (<IN>) {
                my ($oldurl)=$info=~/URL: (.*)/m;
                if ($oldurl ne $url) {
                        system("git remote rm $remote 2>/dev/null");
-                       $error |= system("git", "remote", "add", "-f", $remote, $url);
-               }
-               else {
-                       $error |= system("git", "fetch", $remote);
+                       system("git", "remote", "add", $remote, $url);
+                       system("git", "config", "remote.$remote.tagopt",
+                               "--no-tags");
+                       system("git", "fetch", $remote);
                }
        }
 }
 close IN;
-
-exit $error;