Mercurial > hg
diff hgext/rebase.py @ 39915:7198cdbbbde1
rebase: don't try to prune obsolete changeset already in the destination
With similar motivations to the previous changesets, we stop marking changeset
from pruning when it is not the command intention. In this case, we still need
to distinguish between the strip and the obsolete case.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 26 Sep 2018 22:05:28 +0200 |
parents | 94a4980695f8 |
children | a8ccd9523d40 |
line wrap: on
line diff
--- a/hgext/rebase.py Wed Sep 26 21:51:29 2018 +0200 +++ b/hgext/rebase.py Wed Sep 26 22:05:28 2018 +0200 @@ -1763,17 +1763,21 @@ tonode = repo.changelog.node replacements = {} moves = {} + stripcleanup = not obsolete.isenabled(repo, obsolete.createmarkersopt) for rev, newrev in sorted(state.items()): if newrev >= 0 and newrev != rev: oldnode = tonode(rev) newnode = collapsedas or tonode(newrev) moves[oldnode] = newnode if not keepf: + succs = None if rev in skipped: - succs = () + if stripcleanup or not repo[rev].obsolete(): + succs = () else: succs = (newnode,) - replacements[oldnode] = succs + if succs is not None: + replacements[oldnode] = succs scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup) if fm: hf = fm.hexfunc