mercurial/commands.py
changeset 917 7f3f55903496
parent 915 24a31f46fa13
child 918 fe69ecd3437c
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -7,7 +7,7 @@
 
 from demandload import demandload
 demandload(globals(), "os re sys signal shutil")
-demandload(globals(), "fancyopts ui hg util")
+demandload(globals(), "fancyopts ui hg util lock")
 demandload(globals(), "fnmatch hgweb mdiff random signal time traceback")
 demandload(globals(), "errno socket version struct atexit")
 
@@ -494,6 +494,9 @@ def clone(ui, source, dest=None, **opts)
                     and getattr(os, 'link', None) or shutil.copy2)
         if copyfile is not shutil.copy2:
             ui.note("cloning by hardlink\n")
+        # we use a lock here because because we're not nicely ordered
+        l = lock.lock(os.path.join(source, ".hg", "lock"))
+
         util.copytree(os.path.join(source, ".hg"), os.path.join(dest, ".hg"),
                       copyfile)
         try: