@ 5: F | | o 4: E |/| o | 3: D | | | o 2: C |/ | o 1: B |/ o 0: A % Rebasing % B onto F - simple rebase saving bundle to adding branch adding changesets adding manifests adding file changes added 5 changesets with 4 changes to 4 files (+1 heads) rebase completed @ 5: B | o 4: F | | o 3: E |/| o | 2: D | | | o 1: C |/ o 0: A % B onto D - intermediate point saving bundle to adding branch adding changesets adding manifests adding file changes added 5 changesets with 4 changes to 4 files (+2 heads) rebase completed @ 5: B | | o 4: F |/ | o 3: E |/| o | 2: D | | | o 1: C |/ o 0: A % C onto F - skip of E saving bundle to adding branch adding changesets adding manifests adding file changes added 3 changesets with 3 changes to 3 files (+1 heads) rebase completed @ 4: C | o 3: F | o 2: D | | o 1: B |/ o 0: A % D onto C - rebase of a branching point (skip E) saving bundle to adding branch adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files rebase completed @ 4: F | o 3: D | o 2: C | | o 1: B |/ o 0: A % E onto F - merged revision having a parent in ancestors of target saving bundle to adding branch adding changesets adding manifests adding file changes added 2 changesets with 1 changes to 1 files (-1 heads) rebase completed @ 5: E |\ | o 4: F | | | o 3: D | | o | 2: C |/ | o 1: B |/ o 0: A % D onto B - E maintains C as parent saving bundle to adding branch adding changesets adding manifests adding file changes added 3 changesets with 2 changes to 2 files rebase completed @ 5: F | | o 4: E |/| o | 3: D | | | o 2: C | | o | 1: B |/ o 0: A % These will fail % E onto D - rebase onto an ancestor abort: cannot rebase a descendant % D onto E - rebase onto a descendant abort: cannot rebase an ancestor % E onto B - merge revision with both parents not in ancestors of target abort: cannot use revision 4 as base, result would have 3 parents