# HG changeset patch # User Martin von Zweigbergk # Date 1556042848 25200 # Node ID 8cc329d705f9dc9807ea150f2d3b6d6a9738a0d6 # Parent 98387ccf0b79b4b69287b96650b7d4532c329278 evolve: add progress support for --continue The progress starts where it left off when the previous command ran into merge conflicts. diff -r 98387ccf0b79 -r 8cc329d705f9 hgext3rd/evolve/evolvecmd.py --- a/hgext3rd/evolve/evolvecmd.py Tue Apr 23 10:56:42 2019 -0700 +++ b/hgext3rd/evolve/evolvecmd.py Tue Apr 23 11:07:28 2019 -0700 @@ -1649,7 +1649,7 @@ if not evolvestate: raise error.Abort(_('no interrupted evolve to continue')) evolvestate.load() - continueevolve(ui, repo, evolvestate, None) + continueevolve(ui, repo, evolvestate) if evolvestate['command'] != 'evolve': evolvestate.delete() return @@ -1895,7 +1895,7 @@ raise error.Abort(_("unable to abort interrupted evolve, use 'hg " "evolve --stop' to stop evolve")) -def continueevolve(ui, repo, evolvestate, progresscb): +def continueevolve(ui, repo, evolvestate): """logic for handling of `hg evolve --continue`""" with repo.wlock(), repo.lock(): @@ -1907,7 +1907,7 @@ elif evolvestate['category'] == 'phasedivergent': _completephasedivergent(ui, repo, evolvestate) elif evolvestate['category'] == 'contentdivergent': - _continuecontentdivergent(ui, repo, evolvestate, progresscb) + _continuecontentdivergent(ui, repo, evolvestate, None) else: repo.ui.status(_("continuing interrupted '%s' resolution is not yet" " supported\n") % evolvestate['category']) @@ -1917,6 +1917,14 @@ if evolvestate['command'] != 'evolve': return + # Progress handling + seen = 1 + count = len(evolvestate['revs']) + + def progresscb(): + compat.progress(ui, _('evolve'), seen, unit=_('changesets'), + total=count) + category = evolvestate['category'] confirm = evolvestate['confirm'] unfi = repo.unfiltered() @@ -1948,6 +1956,7 @@ lastsolved = newnode[1] else: evolvestate['skippedrevs'].append(curctx.node()) + seen += 1 def _continuecontentdivergent(ui, repo, evolvestate, progresscb): """function to continue the interrupted content-divergence resolution.""" diff -r 98387ccf0b79 -r 8cc329d705f9 tests/test-evolve-progress.t --- a/tests/test-evolve-progress.t Tue Apr 23 10:56:42 2019 -0700 +++ b/tests/test-evolve-progress.t Tue Apr 23 11:07:28 2019 -0700 @@ -156,6 +156,7 @@ move:[6] third atop:[11] second hg rebase -r 53c0008d98a0 -d 60a86497fbfe + evolve: 2/3 changesets (66.67%) unmatched files in other: b resolving manifests @@ -173,6 +174,7 @@ invalid branchheads cache (served): tip differs move:[7] fourth hg rebase -r 385376d04062 -d b2de95304e32 + evolve: 3/3 changesets (100.00%) resolving manifests branchmerge: True, force: True, partial: False ancestor: 53c0008d98a0, local: b2de95304e32+, remote: 385376d04062