[PATCH 3 of 3 V2] rebase: use findmissingrevs to compute detach set

Siddharth Agarwal sid0 at fb.com
Wed Nov 21 19:24:58 CST 2012


# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1353547339 28800
# Node ID a06dfdf04f720fdff4b40b47c46967ae92076e72
# Parent  09b23b668aac8fa8a45e60a0c6dd0f9563ca1700
rebase: use findmissingrevs to compute detach set

diff -r 09b23b668aac -r a06dfdf04f72 hgext/rebase.py
--- a/hgext/rebase.py	Wed Nov 21 17:21:45 2012 -0800
+++ b/hgext/rebase.py	Wed Nov 21 17:22:19 2012 -0800
@@ -656,9 +656,12 @@
     #
     # The actual abort is handled by `defineparents`
     if len(root.parents()) <= 1:
-        # (strict) ancestors of <root> not ancestors of <dest>
-        detachset = repo.revs('::%d - ::%d - %d', root, commonbase, root)
+        # ancestors of <root> not ancestors of <dest>
+        detachset = repo.changelog.findmissingrevs([commonbase.rev()],
+            [root.rev()])
         state.update(dict.fromkeys(detachset, nullmerge))
+        # detachset can have root, and we definitely want to rebase that
+        state[root.rev()] = nullrev
     return repo['.'].rev(), dest.rev(), state
 
 def clearrebased(ui, repo, state, collapsedas=None):


More information about the Mercurial-devel mailing list