hgext/rebase.py
changeset 39915 7198cdbbbde1
parent 39328 94a4980695f8
child 39917 a8ccd9523d40
--- 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