1256 allopt = opts['all'] |
1256 allopt = opts['all'] |
1257 startnode = repo['.'] |
1257 startnode = repo['.'] |
1258 dryrunopt = opts['dry_run'] |
1258 dryrunopt = opts['dry_run'] |
1259 confirmopt = opts['confirm'] |
1259 confirmopt = opts['confirm'] |
1260 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), 'evolve') |
1260 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), 'evolve') |
|
1261 troubled = set(repo.revs('troubled()')) |
1261 |
1262 |
1262 # Progress handling |
1263 # Progress handling |
1263 seen = 1 |
1264 seen = 1 |
1264 count = allopt and _counttroubled(ui, repo) or 1 |
1265 count = allopt and len(troubled) or 1 |
1265 showprogress = allopt |
1266 showprogress = allopt |
1266 |
1267 |
1267 def progresscb(): |
1268 def progresscb(): |
1268 if allopt: |
1269 if allopt: |
1269 ui.progress('evolve', seen, unit='changesets', total=count) |
1270 ui.progress('evolve', seen, unit='changesets', total=count) |
1315 elif 'divergent' in troubles: |
1316 elif 'divergent' in troubles: |
1316 return _solvedivergent(ui, repo, tro, dryrunopt, confirmopt, |
1317 return _solvedivergent(ui, repo, tro, dryrunopt, confirmopt, |
1317 progresscb) |
1318 progresscb) |
1318 else: |
1319 else: |
1319 assert False # WHAT? unknown troubles |
1320 assert False # WHAT? unknown troubles |
1320 |
|
1321 def _counttroubled(ui, repo): |
|
1322 """Count the amount of troubled changesets""" |
|
1323 troubled = set() |
|
1324 troubled.update(getrevs(repo, 'unstable')) |
|
1325 troubled.update(getrevs(repo, 'bumped')) |
|
1326 troubled.update(getrevs(repo, 'divergent')) |
|
1327 return len(troubled) |
|
1328 |
1321 |
1329 def _picknexttroubled(ui, repo, pickany=False, progresscb=None): |
1322 def _picknexttroubled(ui, repo, pickany=False, progresscb=None): |
1330 """Pick a the next trouble changeset to solve""" |
1323 """Pick a the next trouble changeset to solve""" |
1331 if progresscb: progresscb() |
1324 if progresscb: progresscb() |
1332 tro = _stabilizableunstable(repo, repo['.']) |
1325 tro = _stabilizableunstable(repo, repo['.']) |