comparison hgext/rebase.py @ 36933:61600b024a70

rebase: move constant expressions out of inner loop in _performrebase() Differential Revision: https://phab.mercurial-scm.org/D2811
author Martin von Zweigbergk <martinvonz@google.com>
date Sun, 04 Mar 2018 09:07:06 -0800
parents 437f80436186
children 66651ec259ea
comparison
equal deleted inserted replaced
36932:437f80436186 36933:61600b024a70
421 # if we fail before the transaction closes. 421 # if we fail before the transaction closes.
422 self.storestatus() 422 self.storestatus()
423 423
424 cands = [k for k, v in self.state.iteritems() if v == revtodo] 424 cands = [k for k, v in self.state.iteritems() if v == revtodo]
425 total = len(cands) 425 total = len(cands)
426 pos = 0 426 posholder = [0]
427 def progress(ctx):
428 posholder[0] += 1
429 self.repo.ui.progress(_("rebasing"), posholder[0],
430 ("%d:%s" % (ctx.rev(), ctx)),
431 _('changesets'), total)
432 allowdivergence = self.ui.configbool(
433 'experimental', 'evolution.allowdivergence')
427 for subset in sortsource(self.destmap): 434 for subset in sortsource(self.destmap):
428 sortedrevs = self.repo.revs('sort(%ld, -topo)', subset) 435 sortedrevs = self.repo.revs('sort(%ld, -topo)', subset)
429 allowdivergence = self.ui.configbool(
430 'experimental', 'evolution.allowdivergence')
431 if not allowdivergence: 436 if not allowdivergence:
432 sortedrevs -= self.repo.revs( 437 sortedrevs -= self.repo.revs(
433 'descendants(%ld) and not %ld', 438 'descendants(%ld) and not %ld',
434 self.obsoletewithoutsuccessorindestination, 439 self.obsoletewithoutsuccessorindestination,
435 self.obsoletewithoutsuccessorindestination, 440 self.obsoletewithoutsuccessorindestination,
436 ) 441 )
437 posholder = [pos]
438 def progress(ctx):
439 posholder[0] += 1
440 self.repo.ui.progress(_("rebasing"), posholder[0],
441 ("%d:%s" % (ctx.rev(), ctx)),
442 _('changesets'), total)
443 for rev in sortedrevs: 442 for rev in sortedrevs:
444 self._rebasenode(tr, rev, allowdivergence, progress) 443 self._rebasenode(tr, rev, allowdivergence, progress)
445 pos = posholder[0]
446 ui.progress(_('rebasing'), None) 444 ui.progress(_('rebasing'), None)
447 ui.note(_('rebase merging completed\n')) 445 ui.note(_('rebase merging completed\n'))
448 446
449 def _rebasenode(self, tr, rev, allowdivergence, progressfn): 447 def _rebasenode(self, tr, rev, allowdivergence, progressfn):
450 repo, ui, opts = self.repo, self.ui, self.opts 448 repo, ui, opts = self.repo, self.ui, self.opts