fix 'darcs-all rec' (amongst other things)
authorSimon Marlow <marlowsd@gmail.com>
Thu, 27 Aug 2009 14:15:54 +0000 (14:15 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Thu, 27 Aug 2009 14:15:54 +0000 (14:15 +0000)
darcs-all

index 30b98a0..1a0e639 100644 (file)
--- a/darcs-all
+++ b/darcs-all
@@ -26,6 +26,7 @@ my $defaultrepo;
 
 my $verbose = 2;
 my $ignore_failure = 0;
+my $want_remote_repo = 0;
 
 my %tags;
 
@@ -114,17 +115,15 @@ sub darcsall {
                 $path = "$repo_base/$localpath";
             }
             else {
-                if ($remotepath =~ /^http:/) {
-                    message "Ignoring $localpath; remote is http URL";
-                    next REPO;
-                }
-                else {
-                    $path = "$repo_base/$remotepath";
-                }
+                $path = "$repo_base/$remotepath";
             }
 
             if (-d "$localpath/_darcs") {
-                darcs (@_, "--repodir", $localpath, $path);
+                if ($want_remote_repo) {
+                    darcs (@_, "--repodir", $localpath, $path);
+                } else {
+                    darcs (@_, "--repodir", $localpath);
+                }
             }
             elsif ($tag eq "") {
                 message "== Required repo $localpath is missing! Skipping";
@@ -172,12 +171,7 @@ sub darcsget {
                 $path = "$repo_base/$localpath";
             }
             else {
-                if ($remotepath =~ /^http:/) {
-                    $path = $remotepath;
-                }
-                else {
-                    $path = "$repo_base/$remotepath";
-                }
+                $path = "$repo_base/$remotepath";
             }
 
             if (($tag eq "") || defined($tags{$tag})) {
@@ -247,6 +241,9 @@ sub main {
             # Hack around whatsnew failing if there are no changes
             $ignore_failure = 1;
         }
+        if ($command =~ /^(pul|pus|sen|put)/) {
+            $want_remote_repo = 1;
+        }
         darcsall @_;
     }
 }