Read the packages file in strictly in darcs-all and push-all
[ghc-hetmet.git] / darcs-all
index 0462930..483cd9d 100644 (file)
--- a/darcs-all
+++ b/darcs-all
@@ -55,13 +55,15 @@ sub darcsall {
     my $localpath;
     my $path;
     my $tag;
-
-    darcs @_;
+    my @repos;
 
     open IN, "< packages" or die "Can't open packages file";
-    while (<IN>) {
+    @repos = <IN>;
+    close IN;
+
+    foreach (@repos) {
         chomp;
-        if (/^([^ ]+) +(?:([^ ]+) +)?([^ ]+)/) {
+        if (/^([^# ]+) +(?:([^ ]+) +)?([^ ]+) +([^ ]+)$/) {
             $localpath = $1;
             $tag = defined($2) ? $2 : "";
 
@@ -79,7 +81,6 @@ sub darcsall {
             die "Bad line: $_";
         }
     }
-    close IN;
 }
 
 sub darcsget {
@@ -88,6 +89,7 @@ sub darcsget {
     my $remotepath;
     my $path;
     my $tag;
+    my @repos;
 
     if (! grep /(?:--complete|--partial)/, @_) {
         warning("adding --partial, to override use --complete");
@@ -98,9 +100,12 @@ sub darcsget {
     }
 
     open IN, "< packages" or die "Can't open packages file";
-    while (<IN>) {
+    @repos = <IN>;
+    close IN;
+
+    foreach (@repos) {
         chomp;
-        if (/^([^ ]+) +(?:([^ ]+) +)?([^ ]+)/) {
+        if (/^([^ ]+) +(?:([^ ]+) +)?([^ ]+) +([^ ]+)$/) {
             $localpath = $1;
             $tag = defined($2) ? $2 : "";
             $remotepath = $3;
@@ -121,11 +126,10 @@ sub darcsget {
                 }
             }
         }
-        elsif (! /^$/) {
+        elsif (! /^(#.*)?$/) {
             die "Bad line: $_";
         }
     }
-    close IN;
 }
 
 sub main {