[PATCH 1 of 2 fix] rebase: use a direct reference to repo.changelog
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Wed Oct 14 23:57:35 UTC 2015
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1444862535 -3600
# Wed Oct 14 23:42:15 2015 +0100
# Node ID d2dd179568f5aa46ffc597a393f2df663a4893af
# Parent 07db7e95c464537aeb2dd7aba39de0813eaffd04
# EXP-Topic reb.skip
# Available At http://hg.netv6.net/marmoute-wip/mercurial/
# hg pull http://hg.netv6.net/marmoute-wip/mercurial/ -r d2dd179568f5
rebase: use a direct reference to repo.changelog
Accessing 'repo.changelog' have a small overhead because we double check that the
filtering did not changed. As we make multiple use of this into loops, we should
avoid doing the lookup/check every time. This also make the code tidier.
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1156,23 +1156,24 @@ def _computeobsoletenotrebased(repo, reb
obsoletenotrebased = {}
# Build a mapping succesor => obsolete nodes for the obsolete
# nodes to be rebased
allsuccessors = {}
+ cl = repo.changelog
for r in rebasesetrevs:
n = repo[r]
if n.obsolete():
- node = repo.changelog.node(r)
+ node = cl.node(r)
for s in obsolete.allsuccessors(repo.obsstore, [node]):
- allsuccessors[repo.changelog.rev(s)] = repo.changelog.rev(node)
+ allsuccessors[cl.rev(s)] = cl.rev(node)
if allsuccessors:
# Look for successors of obsolete nodes to be rebased among
# the ancestors of dest
- ancs = repo.changelog.ancestors([repo[dest].rev()],
- stoprev=min(allsuccessors),
- inclusive=True)
+ ancs = cl.ancestors([repo[dest].rev()],
+ stoprev=min(allsuccessors),
+ inclusive=True)
for s in allsuccessors:
if s in ancs:
obsoletenotrebased[allsuccessors[s]] = s
return obsoletenotrebased
More information about the Mercurial-devel
mailing list