comparison 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
comparison
equal deleted inserted replaced
39914:b153ca77a52b 39915:7198cdbbbde1
1761 revisions. 1761 revisions.
1762 """ 1762 """
1763 tonode = repo.changelog.node 1763 tonode = repo.changelog.node
1764 replacements = {} 1764 replacements = {}
1765 moves = {} 1765 moves = {}
1766 stripcleanup = not obsolete.isenabled(repo, obsolete.createmarkersopt)
1766 for rev, newrev in sorted(state.items()): 1767 for rev, newrev in sorted(state.items()):
1767 if newrev >= 0 and newrev != rev: 1768 if newrev >= 0 and newrev != rev:
1768 oldnode = tonode(rev) 1769 oldnode = tonode(rev)
1769 newnode = collapsedas or tonode(newrev) 1770 newnode = collapsedas or tonode(newrev)
1770 moves[oldnode] = newnode 1771 moves[oldnode] = newnode
1771 if not keepf: 1772 if not keepf:
1773 succs = None
1772 if rev in skipped: 1774 if rev in skipped:
1773 succs = () 1775 if stripcleanup or not repo[rev].obsolete():
1776 succs = ()
1774 else: 1777 else:
1775 succs = (newnode,) 1778 succs = (newnode,)
1776 replacements[oldnode] = succs 1779 if succs is not None:
1780 replacements[oldnode] = succs
1777 scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup) 1781 scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup)
1778 if fm: 1782 if fm:
1779 hf = fm.hexfunc 1783 hf = fm.hexfunc
1780 fl = fm.formatlist 1784 fl = fm.formatlist
1781 fd = fm.formatdict 1785 fd = fm.formatdict