Mercurial > public > mercurial-scm > hg-stable
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) +