[PATCH 1 of 3 V2] rebase: minor refactoring of _computeobsoletenotrebased
Laurent Charignon
lcharignon at fb.com
Wed Jan 6 21:01:57 UTC 2016
# HG changeset patch
# User Laurent Charignon <lcharignon at fb.com>
# Date 1452113756 28800
# Wed Jan 06 12:55:56 2016 -0800
# Node ID b268c1df481854a6dcb6ac3ec7bb30a6c24ba7e9
# Parent b8405d739149cdd6d8d9bd5e3dd2ad8487b1f09a
rebase: minor refactoring of _computeobsoletenotrebased
This patch is a refactoring of the code skipping obsolete changesets already
present in destination. It makes the following patches more legible.
Instead of passing all the revs to be rebased to _computeobsoletenotrebased,
we only pass the obsolete revisions of the rebaseset.
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -343,8 +343,10 @@ def rebase(ui, repo, **opts):
obsoletenotrebased = {}
if ui.configbool('experimental', 'rebaseskipobsolete'):
rebasesetrevs = set(rebaseset)
+ rebaseobsrevs = set(r for r in rebasesetrevs
+ if repo[r].obsolete())
obsoletenotrebased = _computeobsoletenotrebased(repo,
- rebasesetrevs,
+ rebaseobsrevs,
dest)
# - plain prune (no successor) changesets are rebased
@@ -1174,7 +1176,7 @@ def _rebasedvisible(orig, repo):
blockers.update(getattr(repo, '_rebaseset', ()))
return blockers
-def _computeobsoletenotrebased(repo, rebasesetrevs, dest):
+def _computeobsoletenotrebased(repo, rebaseobsrevs, dest):
"""return a mapping obsolete => successor for all obsolete nodes to be
rebased that have a successors in the destination
@@ -1185,15 +1187,13 @@ def _computeobsoletenotrebased(repo, reb
# nodes to be rebased
allsuccessors = {}
cl = repo.changelog
- for r in rebasesetrevs:
- n = repo[r]
- if n.obsolete():
- node = cl.node(r)
- for s in obsolete.allsuccessors(repo.obsstore, [node]):
- try:
- allsuccessors[cl.rev(s)] = cl.rev(node)
- except LookupError:
- pass
+ for r in rebaseobsrevs:
+ node = cl.node(r)
+ for s in obsolete.allsuccessors(repo.obsstore, [node]):
+ try:
+ allsuccessors[cl.rev(s)] = cl.rev(node)
+ except LookupError:
+ pass
if allsuccessors:
# Look for successors of obsolete nodes to be rebased among
More information about the Mercurial-devel
mailing list