diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -423,26 +423,24 @@ class rebaseruntime(object): cands = [k for k, v in self.state.iteritems() if v == revtodo] total = len(cands) - pos = 0 + posholder = [0] + def progress(ctx): + posholder[0] += 1 + self.repo.ui.progress(_("rebasing"), posholder[0], + ("%d:%s" % (ctx.rev(), ctx)), + _('changesets'), total) + allowdivergence = self.ui.configbool( + 'experimental', 'evolution.allowdivergence') for subset in sortsource(self.destmap): sortedrevs = self.repo.revs('sort(%ld, -topo)', subset) - allowdivergence = self.ui.configbool( - 'experimental', 'evolution.allowdivergence') if not allowdivergence: sortedrevs -= self.repo.revs( 'descendants(%ld) and not %ld', self.obsoletewithoutsuccessorindestination, self.obsoletewithoutsuccessorindestination, ) - posholder = [pos] - def progress(ctx): - posholder[0] += 1 - self.repo.ui.progress(_("rebasing"), posholder[0], - ("%d:%s" % (ctx.rev(), ctx)), - _('changesets'), total) for rev in sortedrevs: self._rebasenode(tr, rev, allowdivergence, progress) - pos = posholder[0] ui.progress(_('rebasing'), None) ui.note(_('rebase merging completed\n'))