Show More
@@ -291,17 +291,7 b' def clone(ui, peeropts, source, dest=Non' | |||
|
291 | 291 | elif os.listdir(dest): |
|
292 | 292 | raise util.Abort(_("destination '%s' is not empty") % dest) |
|
293 | 293 | |
|
294 | class DirCleanup(object): | |
|
295 | def __init__(self, dir_): | |
|
296 | self.rmtree = shutil.rmtree | |
|
297 | self.dir_ = dir_ | |
|
298 | def close(self): | |
|
299 | self.dir_ = None | |
|
300 | def cleanup(self): | |
|
301 | if self.dir_: | |
|
302 | self.rmtree(self.dir_, True) | |
|
303 | ||
|
304 | srclock = destlock = dircleanup = None | |
|
294 | srclock = destlock = cleandir = None | |
|
305 | 295 | srcrepo = srcpeer.local() |
|
306 | 296 | try: |
|
307 | 297 | abspath = origsource |
@@ -309,7 +299,7 b' def clone(ui, peeropts, source, dest=Non' | |||
|
309 | 299 | abspath = os.path.abspath(util.urllocalpath(origsource)) |
|
310 | 300 | |
|
311 | 301 | if islocal(dest): |
|
312 |
|
|
|
302 | cleandir = dest | |
|
313 | 303 | |
|
314 | 304 | copy = False |
|
315 | 305 | if (srcrepo and srcrepo.cancopy() and islocal(dest) |
@@ -333,13 +323,13 b' def clone(ui, peeropts, source, dest=Non' | |||
|
333 | 323 | os.mkdir(dest) |
|
334 | 324 | else: |
|
335 | 325 | # only clean up directories we create ourselves |
|
336 |
|
|
|
326 | cleandir = hgdir | |
|
337 | 327 | try: |
|
338 | 328 | destpath = hgdir |
|
339 | 329 | util.makedir(destpath, notindexed=True) |
|
340 | 330 | except OSError, inst: |
|
341 | 331 | if inst.errno == errno.EEXIST: |
|
342 |
|
|
|
332 | cleandir = None | |
|
343 | 333 | raise util.Abort(_("destination '%s' already exists") |
|
344 | 334 | % dest) |
|
345 | 335 | raise |
@@ -367,7 +357,7 b' def clone(ui, peeropts, source, dest=Non' | |||
|
367 | 357 | # only pass ui when no srcrepo |
|
368 | 358 | except OSError, inst: |
|
369 | 359 | if inst.errno == errno.EEXIST: |
|
370 |
|
|
|
360 | cleandir = None | |
|
371 | 361 | raise util.Abort(_("destination '%s' already exists") |
|
372 | 362 | % dest) |
|
373 | 363 | raise |
@@ -387,8 +377,7 b' def clone(ui, peeropts, source, dest=Non' | |||
|
387 | 377 | else: |
|
388 | 378 | raise util.Abort(_("clone from remote to remote not supported")) |
|
389 | 379 | |
|
390 | if dircleanup: | |
|
391 | dircleanup.close() | |
|
380 | cleandir = None | |
|
392 | 381 | |
|
393 | 382 | # clone all bookmarks except divergent ones |
|
394 | 383 | destrepo = destpeer.local() |
@@ -454,8 +443,8 b' def clone(ui, peeropts, source, dest=Non' | |||
|
454 | 443 | return srcpeer, destpeer |
|
455 | 444 | finally: |
|
456 | 445 | release(srclock, destlock) |
|
457 |
if |
|
|
458 |
|
|
|
446 | if cleandir is not None: | |
|
447 | shutil.rmtree(cleandir, True) | |
|
459 | 448 | if srcpeer is not None: |
|
460 | 449 | srcpeer.close() |
|
461 | 450 |
General Comments 0
You need to be logged in to leave comments.
Login now