--- a/tests/test-prev-next.t Wed Jun 24 19:43:35 2015 -0700
+++ b/tests/test-prev-next.t Wed Jun 24 21:16:57 2015 -0700
@@ -104,3 +104,85 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[1] added b
+Behavior with aspiring children
+-------------------------------
+
+ $ hg revert --all
+ forgetting modified-bar
+ $ hg log -G
+ o changeset: 2:4e26ef31f919
+ | bookmark: mark
+ | bookmark: no-move
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ @ changeset: 1:6e742c9127b3
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+
+no children of any kind
+
+ $ hg next
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ [2] added c
+ $ hg next
+ no non-obsolete children
+ [1]
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [1] added b
+
+some aspiring children
+
+ $ hg amend -m 'added b (2)'
+ 1 new unstable changesets
+ $ hg next
+ no non-obsolete children
+ [1]
+ $ hg evolve
+ move:[2] added c
+ atop:[3] added b (2)
+ working directory is now at e3b6d5df389b
+
+next with ambiguity
+
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [3] added b (2)
+ $ echo d > d
+ $ hg add d
+ $ hg commit -m 'added d'
+ created new head
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [3] added b (2)
+ $ hg next
+ [4] added c
+ [5] added d
+ multiple non-obsolete children, explicitly update to one of them
+ [1]
+
+next with ambiguity in aspiring children
+
+ $ hg am -m 'added b (3)'
+ 2 new unstable changesets
+ $ hg next
+ no non-obsolete children
+ [1]
+ $ hg evolve
+ abort: multiple evolve candidates
+ (select one of e3b6d5df389b, 9df671ccd2c7 with --rev)
+ [255]
+ $ hg evolve -r 5
+ move:[5] added d
+ atop:[6] added b (3)
+ working directory is now at 47ea25be8aea