Mercurial > hg
diff hgext/rebase.py @ 39919:0428feb1f0d7
rebase: explicitly track collapses as fold
A collapse is a large fold. It is now explicitly tracked (at the cleanupnodes
API level).
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 26 Sep 2018 22:45:44 +0200 |
parents | a8318c9cb2ad |
children | c303d65d2e34 |
line wrap: on
line diff
--- a/hgext/rebase.py Wed Sep 26 23:51:11 2018 +0200 +++ b/hgext/rebase.py Wed Sep 26 22:45:44 2018 +0200 @@ -1764,6 +1764,8 @@ replacements = {} moves = {} stripcleanup = not obsolete.isenabled(repo, obsolete.createmarkersopt) + + collapsednodes = [] for rev, newrev in sorted(state.items()): if newrev >= 0 and newrev != rev: oldnode = tonode(rev) @@ -1774,10 +1776,14 @@ if rev in skipped: if stripcleanup or not repo[rev].obsolete(): succs = () + elif collapsedas: + collapsednodes.append(oldnode) else: succs = (newnode,) if succs is not None: replacements[(oldnode,)] = succs + if collapsednodes: + replacements[tuple(collapsednodes)] = (collapsedas,) scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup) if fm: hf = fm.hexfunc