--- a/mercurial/hg.py Wed Jan 16 19:21:03 2013 +0100
+++ b/mercurial/hg.py Fri Oct 05 18:10:56 2012 -0500
@@ -291,17 +291,7 @@
elif os.listdir(dest):
raise util.Abort(_("destination '%s' is not empty") % dest)
- class DirCleanup(object):
- def __init__(self, dir_):
- self.rmtree = shutil.rmtree
- self.dir_ = dir_
- def close(self):
- self.dir_ = None
- def cleanup(self):
- if self.dir_:
- self.rmtree(self.dir_, True)
-
- srclock = destlock = dircleanup = None
+ srclock = destlock = cleandir = None
srcrepo = srcpeer.local()
try:
abspath = origsource
@@ -309,7 +299,7 @@
abspath = os.path.abspath(util.urllocalpath(origsource))
if islocal(dest):
- dircleanup = DirCleanup(dest)
+ cleandir = dest
copy = False
if (srcrepo and srcrepo.cancopy() and islocal(dest)
@@ -333,13 +323,13 @@
os.mkdir(dest)
else:
# only clean up directories we create ourselves
- dircleanup.dir_ = hgdir
+ cleandir = hgdir
try:
destpath = hgdir
util.makedir(destpath, notindexed=True)
except OSError, inst:
if inst.errno == errno.EEXIST:
- dircleanup.close()
+ cleandir = None
raise util.Abort(_("destination '%s' already exists")
% dest)
raise
@@ -367,7 +357,7 @@
# only pass ui when no srcrepo
except OSError, inst:
if inst.errno == errno.EEXIST:
- dircleanup.close()
+ cleandir = None
raise util.Abort(_("destination '%s' already exists")
% dest)
raise
@@ -387,8 +377,7 @@
else:
raise util.Abort(_("clone from remote to remote not supported"))
- if dircleanup:
- dircleanup.close()
+ cleandir = None
# clone all bookmarks except divergent ones
destrepo = destpeer.local()
@@ -454,8 +443,8 @@
return srcpeer, destpeer
finally:
release(srclock, destlock)
- if dircleanup is not None:
- dircleanup.cleanup()
+ if cleandir is not None:
+ shutil.rmtree(cleandir, True)
if srcpeer is not None:
srcpeer.close()