431 # When using single transaction, store state when transaction |
431 # When using single transaction, store state when transaction |
432 # commits. |
432 # commits. |
433 self.storestatus(tr) |
433 self.storestatus(tr) |
434 |
434 |
435 cands = [k for k, v in self.state.iteritems() if v == revtodo] |
435 cands = [k for k, v in self.state.iteritems() if v == revtodo] |
436 total = len(cands) |
436 p = repo.ui.makeprogress(_("rebasing"), unit=_('changesets'), |
437 posholder = [0] |
437 total=len(cands)) |
438 def progress(ctx): |
438 def progress(ctx): |
439 posholder[0] += 1 |
439 p.increment(item=("%d:%s" % (ctx.rev(), ctx))) |
440 self.repo.ui.progress(_("rebasing"), posholder[0], |
|
441 ("%d:%s" % (ctx.rev(), ctx)), |
|
442 _('changesets'), total) |
|
443 allowdivergence = self.ui.configbool( |
440 allowdivergence = self.ui.configbool( |
444 'experimental', 'evolution.allowdivergence') |
441 'experimental', 'evolution.allowdivergence') |
445 for subset in sortsource(self.destmap): |
442 for subset in sortsource(self.destmap): |
446 sortedrevs = self.repo.revs('sort(%ld, -topo)', subset) |
443 sortedrevs = self.repo.revs('sort(%ld, -topo)', subset) |
447 if not allowdivergence: |
444 if not allowdivergence: |
450 self.obsoletewithoutsuccessorindestination, |
447 self.obsoletewithoutsuccessorindestination, |
451 self.obsoletewithoutsuccessorindestination, |
448 self.obsoletewithoutsuccessorindestination, |
452 ) |
449 ) |
453 for rev in sortedrevs: |
450 for rev in sortedrevs: |
454 self._rebasenode(tr, rev, allowdivergence, progress) |
451 self._rebasenode(tr, rev, allowdivergence, progress) |
455 ui.progress(_('rebasing'), None) |
452 p.complete() |
456 ui.note(_('rebase merging completed\n')) |
453 ui.note(_('rebase merging completed\n')) |
457 |
454 |
458 def _concludenode(self, rev, p1, p2, editor, commitmsg=None): |
455 def _concludenode(self, rev, p1, p2, editor, commitmsg=None): |
459 '''Commit the wd changes with parents p1 and p2. |
456 '''Commit the wd changes with parents p1 and p2. |
460 |
457 |