Mercurial > hg
comparison mercurial/hg.py @ 38380:63e6f5ae84bc
copystore: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3781
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Sun, 17 Jun 2018 22:57:34 -0700 |
parents | 0664be4f0c1f |
children | e06a10d3b926 |
comparison
equal
deleted
inserted
replaced
38379:3a7c33a2cc5e | 38380:63e6f5ae84bc |
---|---|
370 returns destlock | 370 returns destlock |
371 ''' | 371 ''' |
372 destlock = None | 372 destlock = None |
373 try: | 373 try: |
374 hardlink = None | 374 hardlink = None |
375 topic = _('linking') if hardlink else _('copying') | |
376 progress = ui.makeprogress(topic) | |
375 num = 0 | 377 num = 0 |
376 closetopic = [None] | |
377 def prog(topic, pos): | |
378 if pos is None: | |
379 closetopic[0] = topic | |
380 else: | |
381 ui.progress(topic, pos + num) | |
382 srcpublishing = srcrepo.publishing() | 378 srcpublishing = srcrepo.publishing() |
383 srcvfs = vfsmod.vfs(srcrepo.sharedpath) | 379 srcvfs = vfsmod.vfs(srcrepo.sharedpath) |
384 dstvfs = vfsmod.vfs(destpath) | 380 dstvfs = vfsmod.vfs(destpath) |
385 for f in srcrepo.store.copylist(): | 381 for f in srcrepo.store.copylist(): |
386 if srcpublishing and f.endswith('phaseroots'): | 382 if srcpublishing and f.endswith('phaseroots'): |
393 # 'dstbase' may be empty (e.g. revlog format 0) | 389 # 'dstbase' may be empty (e.g. revlog format 0) |
394 lockfile = os.path.join(dstbase, "lock") | 390 lockfile = os.path.join(dstbase, "lock") |
395 # lock to avoid premature writing to the target | 391 # lock to avoid premature writing to the target |
396 destlock = lock.lock(dstvfs, lockfile) | 392 destlock = lock.lock(dstvfs, lockfile) |
397 hardlink, n = util.copyfiles(srcvfs.join(f), dstvfs.join(f), | 393 hardlink, n = util.copyfiles(srcvfs.join(f), dstvfs.join(f), |
398 hardlink, progress=prog) | 394 hardlink, progress) |
399 num += n | 395 num += n |
400 if hardlink: | 396 if hardlink: |
401 ui.debug("linked %d files\n" % num) | 397 ui.debug("linked %d files\n" % num) |
402 if closetopic[0]: | |
403 ui.progress(closetopic[0], None) | |
404 else: | 398 else: |
405 ui.debug("copied %d files\n" % num) | 399 ui.debug("copied %d files\n" % num) |
406 if closetopic[0]: | 400 progress.complete() |
407 ui.progress(closetopic[0], None) | |
408 return destlock | 401 return destlock |
409 except: # re-raises | 402 except: # re-raises |
410 release(destlock) | 403 release(destlock) |
411 raise | 404 raise |
412 | 405 |