diff --git a/mercurial/archival.py b/mercurial/archival.py --- a/mercurial/archival.py +++ b/mercurial/archival.py @@ -322,13 +322,14 @@ def archive(repo, dest, node, kind, deco files.sort() scmutil.prefetchfiles(repo, [ctx.rev()], scmutil.matchfiles(repo, files)) - repo.ui.progress(_('archiving'), 0, unit=_('files'), total=total) - for i, f in enumerate(files): + progress = scmutil.progress(repo.ui, _('archiving'), unit=_('files'), + total=total) + progress.update(0) + for f in files: ff = ctx.flags(f) write(f, 'x' in ff and 0o755 or 0o644, 'l' in ff, ctx[f].data) - repo.ui.progress(_('archiving'), i + 1, item=f, - unit=_('files'), total=total) - repo.ui.progress(_('archiving'), None) + progress.increment(item=f) + progress.complete() if subrepos: for subpath in sorted(ctx.substate):