diff mercurial/commands.py @ 503:c6a2e41c8c60

Fix troubles with clone and exception handling -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Fix troubles with clone and exception handling Clone deletes its directory on failure This was deleting the lockfile out from under the lock object before it got destroyed This patch shuts lock up and makes the cleanup code for clone a little cleaner. manifest hash: f666fddcf6f3a905020a091f5e9fd2cb5d806cdd -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCwSGOywK+sNU5EO8RAkx2AKCIxPczl9YWnuUM+bMQnpVr8kv6uQCeNWld SUxSB99PGJHhq1LWFaSJJNw= =Frk/ -----END PGP SIGNATURE-----
author mpm@selenic.com
date Tue, 28 Jun 2005 02:08:14 -0800
parents ebc4714a7632
children dc1f735dfaac
line wrap: on
line diff
--- a/mercurial/commands.py	Tue Jun 28 02:04:49 2005 -0800
+++ b/mercurial/commands.py	Tue Jun 28 02:08:14 2005 -0800
@@ -273,7 +273,7 @@
 
     if source in paths: source = paths[source]
 
-    created = False
+    created = success = False
 
     if dest is None:
         dest = os.getcwd()
@@ -314,12 +314,15 @@
 
         if not opts['no-update']:
             update(ui, repo)
-    except:
-        if created:
+
+        success = True
+        
+    finally:
+        if not success:
+            del repo
             import shutil
             shutil.rmtree(dest, True)
-        raise
-
+    
 def commit(ui, repo, *files, **opts):
     """commit the specified files or all outstanding changes"""
     text = opts['text']
@@ -904,5 +907,6 @@
         u.debug(inst, "\n")
         u.warn("%s: invalid arguments\n" % i[0].__name__)
         help(u, cmd)
-        sys.exit(-1)
 
+    sys.exit(-1)
+