# HG changeset patch # User Levi Bard # Date 1360423282 -3600 # Node ID 2ec7c3673679c957abf4e23d4feda547ce1e80ba # Parent a246b02499d9d08f6b61e5573cbe110cc643c562 evolve: add --all argument. diff -r a246b02499d9 -r 2ec7c3673679 hgext/evolve.py --- a/hgext/evolve.py Sat Feb 09 15:42:14 2013 +0100 +++ b/hgext/evolve.py Sat Feb 09 16:21:22 2013 +0100 @@ -858,6 +858,7 @@ @command('^evolve|stabilize|evolve|solve', [('n', 'dry-run', False, 'do not perform actions, print what to be done'), ('A', 'any', False, 'evolve any troubled changeset'), + ('a', 'all', False, 'evolve all troubled changesets'), ('c', 'continue', False, 'continue an interrupted evolution'), ], _('[OPTIONS]...')) def evolve(ui, repo, **opts): @@ -884,15 +885,29 @@ contopt = opts['continue'] anyopt = opts['any'] + allopt = opts['all'] dryrunopt = opts['dry_run'] + evolved_changesets = 0 + if contopt: if anyopt: raise util.Abort('can not specify both "--any" and "--continue"') + if allopt: + raise util.Abort('can not specify both "--all" and "--continue"') graftcmd = commands.table['graft'][0] return graftcmd(ui, repo, old_obsolete=True, **{'continue': True}) - - return _evolveany(ui, repo, anyopt, dryrunopt) + while True: + result = _evolveany(ui, repo, anyopt or allopt, dryrunopt) + if(1 == result): + if(0 < evolved_changesets): + # We evolved some changesets, and now we're done + return 0 + ui.write_err(_('no troubled changeset\n')) + if not allopt: + return result + evolved_changesets+=1 + def _evolveany(ui, repo, anyopt, dryrunopt): tr = _picknexttroubled(ui, repo, anyopt) @@ -904,7 +919,6 @@ % len(troubled)) return 2 else: - ui.write_err(_('no troubled changeset\n')) return 1 repo = repo.unfiltered() tr = repo[tr.rev()]