hgext/rebase.py
changeset 17611 910123eac887
parent 17325 e4db509c08ec
child 17612 fc2a6114f0a0
--- a/hgext/rebase.py	Tue Sep 18 14:37:32 2012 -0700
+++ b/hgext/rebase.py	Tue Sep 18 22:58:12 2012 +0200
@@ -310,15 +310,7 @@
                     nstate[repo[k].node()] = repo[v].node()
 
         if not keepf:
-            # Remove no more useful revisions
-            rebased = [rev for rev in state if state[rev] != nullmerge]
-            if rebased:
-                if set(repo.changelog.descendants([min(rebased)])) - set(state):
-                    ui.warn(_("warning: new changesets detected "
-                              "on source branch, not stripping\n"))
-                else:
-                    # backup the old csets by default
-                    repair.strip(ui, repo, repo[min(rebased)].node(), "all")
+            clearrebased(ui, repo, state)
 
         if currentbookmarks:
             updatebookmarks(repo, nstate, currentbookmarks, **opts)
@@ -664,6 +656,18 @@
         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"""
+    rebased = [rev for rev in state if state[rev] != nullmerge]
+    if rebased:
+        if set(repo.changelog.descendants([min(rebased)])) - set(state):
+            ui.warn(_("warning: new changesets detected "
+                      "on source branch, not stripping\n"))
+        else:
+            # backup the old csets by default
+            repair.strip(ui, repo, repo[min(rebased)].node(), "all")
+
+
 def pullrebase(orig, ui, repo, *args, **opts):
     'Call rebase after pull if the latter has been invoked with --rebase'
     if opts.get('rebase'):