Here's a more detailed log of the bug.
I suspect this is related to other rebase's bugs and the way we look for
ancestors.
In this period I can hardly follow the ML and I've got very few time to
spend on hg, but please add me to the nosy list whenever you find a bug like
this, thanks.
o 3:4007d7a1b0ea Summary: rev 3: M a/bar
|
| diff --git a/a/bar b/a/bar
| --- a/a/bar
| +++ b/a/bar
| @@ -1,1 +1,2 @@
| bar
| +bar2
|
| @ 2:3590b74f1c93 Summary: rev 2: a->b
|/
| diff --git a/a/foo b/a/foo
| deleted file mode 100644
| --- a/a/foo
| +++ /dev/null
| @@ -1,2 +0,0 @@
| -foo
| -foo2
| diff --git a/a/bar b/b/bar
| rename from a/bar
| rename to b/bar
| diff --git a/b/foo b/b/foo
| new file mode 100644
| --- /dev/null
| +++ b/b/foo
| @@ -0,0 +1,2 @@
| +foo
| +foo2
|
o 1:4b7ce962c71a Summary: rev 1: M a/foo
|
| diff --git a/a/foo b/a/foo
| --- a/a/foo
| +++ b/a/foo
| @@ -1,1 +1,2 @@
| foo
| +foo2
|
o 0:a1aa4efc3042 Summary: rev 0; A a
diff --git a/a/bar b/a/bar
new file mode 100644
--- /dev/null
+++ b/a/bar
@@ -0,0 +1,1 @@
+bar
diff --git a/a/foo b/a/foo
new file mode 100644
--- /dev/null
+++ b/a/foo
@@ -0,0 +1,1 @@
+foo
rebase onto 2 starting from 3
rebase status stored
rebasing 3:4007d7a1b0ea
future parents are 2 and -1
already in target
merge against 3:4007d7a1b0ea
first revision, do not change ancestor
searching for copies back to rev 2
unmatched files in local:
b/bar
b/foo
all copies found (* = to merge, ! = divergent):
b/bar -> a/bar *
checking for directory renames
dir a/ -> b/
resolving manifests
overwrite False partial False
ancestor 4b7ce962c71a local 3590b74f1c93+ remote 4007d7a1b0ea
b/bar: local copied/moved to a/bar -> m
preserving b/bar for resolve of b/bar
picked tool 'internal:merge' for b/bar (binary False symlink False)
merging b/bar and a/bar to b/bar
my b/bar@3590b74f1c93+ other a/bar@4007d7a1b0ea ancestor a/bar@a1aa4efc3042
premerge successful
searching for copies back to rev 2
unmatched files in local:
a/bar
a/foo
unmatched files in other:
b/bar
b/foo
all copies found (* = to merge, ! = divergent):
b/bar -> a/bar *
checking for directory renames
dir a/ -> b/
file a/foo -> b/foo
set parents
b/bar
b/bar: searching for copy revision for a/bar
b/bar: copy a/bar:b004912a8510032a0350a74daa2803dadfb00e12
rebase merging completed
1 changesets found
list of changesets:
13beafaa564ffa12dd3858acbded4c05ae019eec
saving bundle to /tmp/test/.hg/strip-backup/4007d7a1b0ea-temp
adding branch
adding changesets
add changeset 13beafaa564f
adding manifests
adding file changes
adding b/bar revisions
added 1 changesets with 1 changes to 1 files
updating the branch cache
invalidating branch cache (tip differs)
rebase completed
@ 3:13beafaa564f Summary: rev 3: M a/bar
|
| diff --git a/b/bar b/b/bar
| --- a/b/bar
| +++ b/b/bar
| @@ -1,1 +1,2 @@
| bar
| +bar2
| diff --git a/b/foo b/b/foo
| deleted file mode 100644
| --- a/b/foo
| +++ /dev/null
| @@ -1,2 +0,0 @@
| -foo
| -foo2
|
o 2:3590b74f1c93 Summary: rev 2: a->b
|
| diff --git a/a/foo b/a/foo
| deleted file mode 100644
| --- a/a/foo
| +++ /dev/null
| @@ -1,2 +0,0 @@
| -foo
| -foo2
| diff --git a/a/bar b/b/bar
| rename from a/bar
| rename to b/bar
| diff --git a/b/foo b/b/foo
| new file mode 100644
| --- /dev/null
| +++ b/b/foo
| @@ -0,0 +1,2 @@
| +foo
| +foo2
|
o 1:4b7ce962c71a Summary: rev 1: M a/foo
|
| diff --git a/a/foo b/a/foo
| --- a/a/foo
| +++ b/a/foo
| @@ -1,1 +1,2 @@
| foo
| +foo2
|
o 0:a1aa4efc3042 Summary: rev 0; A a
diff --git a/a/bar b/a/bar
new file mode 100644
--- /dev/null
+++ b/a/bar
@@ -0,0 +1,1 @@
+bar
diff --git a/a/foo b/a/foo
new file mode 100644
--- /dev/null
+++ b/a/foo
@@ -0,0 +1,1 @@
+foo
M b/bar
R b/foo
|