# HG changeset patch
# User Henrik Stuart <hg@hstuart.dk>
# Date 1290243116 -3600
#      Sat Nov 20 09:51:56 2010 +0100
# Branch stable
# Node ID 6c800e7ef2f61a28d6a1febb3a10d4a8725360cf
# Parent  ea3bada953d38e724cbb9cdc76174249635bc6f2
rebase: support --detach when null is common ancestor

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -485,7 +485,7 @@
             srcancestors = set(repo.changelog.ancestors(source))
             baseancestors = set(repo.changelog.ancestors(commonbase.rev()))
             detachset = srcancestors - baseancestors
-            detachset.remove(commonbase.rev())
+            detachset.discard(commonbase.rev())
     else:
         if base:
             cwd = repo[base].rev()
diff --git a/tests/test-rebase-detach.t b/tests/test-rebase-detach.t
--- a/tests/test-rebase-detach.t
+++ b/tests/test-rebase-detach.t
@@ -191,3 +191,44 @@
 
   $ cd ..
 
+Rebasing across null as ancestor
+  $ hg clone -q -U a a5
+
+  $ cd a5
+
+  $ echo x > x
+
+  $ hg add x
+
+  $ hg ci -m "extra branch"
+  created new head
+
+  $ hg tglog
+  @  5: 'extra branch'
+  
+  o  4: 'E'
+  |
+  | o  3: 'D'
+  | |
+  | o  2: 'C'
+  | |
+  | o  1: 'B'
+  |/
+  o  0: 'A'
+  
+  $ hg rebase --detach -s 1 -d tip
+  saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob)
+
+  $ hg tglog
+  @  5: 'D'
+  |
+  o  4: 'C'
+  |
+  o  3: 'B'
+  |
+  o  2: 'extra branch'
+  
+  o  1: 'E'
+  |
+  o  0: 'A'
+