From patchwork Fri Jun 29 21:35:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D3848: fix: add progress bar for number of file revisions processed From: phabricator X-Patchwork-Id: 32512 Message-Id: To: mercurial-devel@mercurial-scm.org Date: Fri, 29 Jun 2018 21:35:48 +0000 hooper updated this revision to Diff 9363. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3848?vs=9320&id=9363 REVISION DETAIL https://phab.mercurial-scm.org/D3848 AFFECTED FILES hgext/fix.py CHANGE DETAILS To: hooper, #hg-reviewers Cc: mercurial-devel diff --git a/hgext/fix.py b/hgext/fix.py --- a/hgext/fix.py +++ b/hgext/fix.py @@ -162,22 +162,25 @@ filedata = collections.defaultdict(dict) replacements = {} commitorder = sorted(revstofix, reverse=True) - for rev, path, newdata in results: - if newdata is not None: - filedata[rev][path] = newdata - numitems[rev] -= 1 - # Apply the fixes for this and any other revisions that are ready - # and sitting at the front of the queue. Using a loop here prevents - # the queue from being blocked by the first revision to be ready out - # of order. - while commitorder and not numitems[commitorder[-1]]: - rev = commitorder.pop() - ctx = repo[rev] - if rev == wdirrev: - writeworkingdir(repo, ctx, filedata[rev], replacements) - else: - replacerev(ui, repo, ctx, filedata[rev], replacements) - del filedata[rev] + with ui.makeprogress(topic=_('fixing'), unit=_('files'), + total=sum(numitems.values())) as progress: + for rev, path, newdata in results: + progress.increment(item=path) + if newdata is not None: + filedata[rev][path] = newdata + numitems[rev] -= 1 + # Apply the fixes for this and any other revisions that are ready + # and sitting at the front of the queue. Using a loop here prevents + # the queue from being blocked by the first revision to be ready out + # of order. + while commitorder and not numitems[commitorder[-1]]: + rev = commitorder.pop() + ctx = repo[rev] + if rev == wdirrev: + writeworkingdir(repo, ctx, filedata[rev], replacements) + else: + replacerev(ui, repo, ctx, filedata[rev], replacements) + del filedata[rev] replacements = {prec: [succ] for prec, succ in replacements.iteritems()} scmutil.cleanupnodes(repo, replacements, 'fix', fixphase=True)