Set the value of Unregisterised in the bindist configure.ac
[ghc.git] / sync-all
index e22861c..7c19892 100755 (executable)
--- a/sync-all
+++ b/sync-all
@@ -129,6 +129,29 @@ sub warning {
     }
 }
 
+sub gitNewWorkdir {
+    my $dir = shift;
+    my $target = shift;
+    my $target_dir = "$target/$dir";
+    my $pwd;
+
+    if ($dir eq '.') {
+        message "== running git-new-workdir . $target_dir @_";
+    } else {
+        message "== $dir: running git-new-workdir . $target_dir @_";
+        $pwd = getcwd();
+        chdir($dir);
+    }
+
+    system ("git-new-workdir", ".", $target_dir, @_) == 0
+        or $ignore_failure
+        or die "git-new-workdir failed: $?";
+
+    if ($dir ne '.') {
+        chdir($pwd);
+    }
+}
+
 sub scm {
     my $dir = shift;
     my $scm = shift;
@@ -343,6 +366,9 @@ sub scmall {
         elsif ($command =~ /^(?:pul|pull)$/) {
             scm ($localpath, $scm, "pull", @args);
         }
+        elsif ($command =~ /^(?:new-workdir)$/) {
+            gitNewWorkdir ($localpath, @args);
+        }
         elsif ($command =~ /^(?:s|se|sen|send)$/) {
             if ($scm eq "darcs") {
                 $command = "send";
@@ -421,6 +447,9 @@ sub scmall {
             scm ($localpath, $scm, "gc", @args)
                 unless $scm eq "darcs";
         }
+        elsif ($command =~ /^tag$/) {
+            scm ($localpath, $scm, "tag", @args);
+        }
         else {
             die "Unknown command: $command";
         }
@@ -508,12 +537,14 @@ any extra arguments to git:
   grep
   log
   new
+  new-workdir
   pull
   push
   repack
   reset
   send
   status
+  tag
 
 -------------- Flags -------------------
 These flags are given *before* the command and modify the way sync-all behaves.
@@ -738,6 +769,42 @@ EOF
         chdir($pwd);
     }
 
+    message "== Checking for old mtl repo";
+    if (-d "libraries/mtl/.git") {
+        chdir("libraries/mtl");
+        if ((system "git log -1 c67d8f7247c612dc35242bc67e616f7ea35eadb9 > /dev/null 2> /dev/null") == 0) {
+            print <<EOF;
+============================
+ATTENTION!
+
+You have an old mtl repository in your GHC tree!
+
+Please remove it (e.g. "rm -r libraries/mtl"), and then run
+"./sync-all get" to get the new repository.
+============================
+EOF
+        }
+        chdir($pwd);
+    }
+
+    message "== Checking for old Cabal repo";
+    if (-d "libraries/Cabal/.git") {
+        chdir("libraries/Cabal");
+        if ((system "git log -1 c8ebd66a32865f72ae03ee0663c62df3d77f08fe > /dev/null 2> /dev/null") == 0) {
+            print <<EOF;
+============================
+ATTENTION!
+
+You have an old Cabal repository in your GHC tree!
+
+Please remove it (e.g. "rm -r libraries/Cabal"), and then run
+"./sync-all get" to get the new repository.
+============================
+EOF
+        }
+        chdir($pwd);
+    }
+
     $? = $ec;
 }