diff mercurial/commands.py @ 1244:937ee88da3ef

clone: fall back to pull if we can't lock the source repo
author mpm@selenic.com
date Wed, 14 Sep 2005 15:48:34 -0500
parents 4a6efec8b698
children 0ad3f9b27260
line wrap: on
line diff
--- a/mercurial/commands.py	Wed Sep 14 13:14:20 2005 -0500
+++ b/mercurial/commands.py	Wed Sep 14 15:48:34 2005 -0500
@@ -621,15 +621,23 @@
     abspath = source
     other = hg.repository(ui, source)
 
+    copy = False
     if other.dev() != -1:
         abspath = os.path.abspath(source)
+        copy = True
 
-        # we use a lock here because if we race with commit, we can
-        # end up with extra data in the cloned revlogs that's not
-        # pointed to by changesets, thus causing verify to fail
-        l1 = lock.lock(os.path.join(source, ".hg", "lock"))
+    if copy:
+        try:
+            # we use a lock here because if we race with commit, we
+            # can end up with extra data in the cloned revlogs that's
+            # not pointed to by changesets, thus causing verify to
+            # fail
+            l1 = lock.lock(os.path.join(source, ".hg", "lock"))
+        except OSError:
+            copy = False
 
-        # and here to avoid premature writing to the target
+    if copy:
+        # we lock here to avoid premature writing to the target
         os.mkdir(os.path.join(dest, ".hg"))
         l2 = lock.lock(os.path.join(dest, ".hg", "lock"))