Wed May  7 19:55:12 CEST 2008  Almad <bugs@almad.net>
  * mercurial_copy_with_archive - Mercurial uses hg archive insteaad of cp -rp on mode=copy. This breaks tests as they're not commiting touches on srcdir
diff -rN -u old-buildbot/buildbot/slave/commands.py new-buildbot/buildbot/slave/commands.py
--- old-buildbot/buildbot/slave/commands.py	2008-05-12 15:56:28.000000000 +0200
+++ new-buildbot/buildbot/slave/commands.py	2008-05-12 15:56:28.000000000 +0200
@@ -2320,6 +2320,25 @@
         d.addCallback(_parse)
         return d
 
+    def doCopy(self, res):
+        # now copy tree to workdir
+        # we can do it via hg archive as we don't need active workdir there
+        fromdir = os.path.join(self.builder.basedir, self.srcdir)
+        todir = os.path.join(self.builder.basedir, self.workdir)
+
+        # I'd use from mercurial.dispatch import dispatch ; dispatch(['archive', todir]),
+        # but whole buildbot seems to use console commands,
+        # so we're going to use it here too 
+        
+        command = [self.vcexe, "archive", todir]
+
+        c = ShellCommand(self.builder, command, fromdir,
+                         sendRC=False, timeout=self.timeout)
+        self.command = c
+        d = c.start()
+        d.addCallback(self._abandonOnFailure)
+        return d
+
 registerSlaveCommand("hg", Mercurial, command_version)
 
 


