hgext/rebase.py
changeset 17613 aafc521668d8
parent 17612 fc2a6114f0a0
child 17614 d417986e5e05
--- a/hgext/rebase.py	Tue Sep 18 23:13:31 2012 +0200
+++ b/hgext/rebase.py	Tue Sep 18 23:42:27 2012 +0200
@@ -310,7 +310,10 @@
                     nstate[repo[k].node()] = repo[v].node()
 
         if not keepf:
-            clearrebased(ui, repo, state)
+            collapsedas = None
+            if collapsef:
+                collapsedas = newrev
+            clearrebased(ui, repo, state, collapsedas)
 
         if currentbookmarks:
             updatebookmarks(repo, nstate, currentbookmarks, **opts)
@@ -656,12 +659,17 @@
         state.update(dict.fromkeys(detachset, nullmerge))
     return repo['.'].rev(), dest.rev(), state
 
-def clearrebased(ui, repo, state):
-    """dispose of rebased revision at the end of the rebase"""
+def clearrebased(ui, repo, state, collapsedas=None):
+    """dispose of rebased revision at the end of the rebase
+
+    If `collapsedas` is not None, the rebase was a collapse whose result if the
+    `collapsedas` node."""
     if obsolete._enabled:
         markers = []
         for rev, newrev in sorted(state.items()):
             if newrev >= 0:
+                if collapsedas is not None:
+                    newrev = collapsedas
                 markers.append((repo[rev], (repo[newrev],)))
         if markers:
             obsolete.createmarkers(repo, markers)