tests: add some more actions to test-issue-6028, describe what's being done stable
authorAnton Shestakov <av6@dwimlabs.net>
Thu, 19 Sep 2019 11:46:16 +0700
branchstable
changeset 4843 d6e2820dac1f
parent 4842 ee0866a279da
child 4844 2488ec1bd22f
tests: add some more actions to test-issue-6028, describe what's being done This patch does two things: it explains what's happening in the test file so it's easier to understand, and also it adds checks that make sure something like swapping merge parents is not accidentally breaking anything. The primary reason to touch this test file was that it was broken by a change in core's merge.graft() that erroneously swapped merge parents. Since only evolve uses merge.graft() for merge commits and there aren't any tests in core for it, let's test it here. Plus, this test case is pretty simple and these additional checks don't make it too complicated.
tests/test-issue-6028.t
--- a/tests/test-issue-6028.t	Fri Sep 13 16:04:32 2019 +0200
+++ b/tests/test-issue-6028.t	Thu Sep 19 11:46:16 2019 +0700
@@ -25,10 +25,12 @@
   $ cd $TESTTMP/issue-6028
 
 create initial commit
+
   $ echo "0" > 0
   $ hg ci -Am 0
   adding 0
 
+start new topics "a" and "b" both from 0
 
   $ hg up default
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -40,7 +42,6 @@
   active topic 'a' grew its first changeset
   (see 'hg help topics' for more information)
 
-
   $ hg up default
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg topics b
@@ -51,6 +52,8 @@
   active topic 'b' grew its first changeset
   (see 'hg help topics' for more information)
 
+create branch "integration" from 0, merge topics "a" and "b" into it
+
   $ hg up default
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch integration
@@ -66,6 +69,8 @@
   (branch merge, don't forget to commit)
   $ hg ci -m "merged b"
 
+commit a bad file on topic "a", merge it into "integration"
+
   $ hg up a
   switching to topic a
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -79,6 +84,8 @@
   (branch merge, don't forget to commit)
   $ hg ci -m "merged a bad commit"
 
+add more commits on both topics and merge them into "integration"
+
   $ hg up a
   switching to topic a
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -103,7 +110,12 @@
   (branch merge, don't forget to commit)
   $ hg ci -m "merged bb"
 
-create instability by pruning two changesets, one in a topic, one in a merge
+create instability by pruning two changesets, one in a topic, one a merge
+
+  $ hg log -r 5:6 -T '{rev}: {desc}\n'
+  5: a bad commit
+  6: merged a bad commit
+
   $ hg prune -r 5:6
   2 changesets pruned
   3 new orphan changesets
@@ -112,12 +124,47 @@
   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
 
 start the evolve
+
   $ hg evolve --update --no-all
   move:[8] merged aa
   atop:[4] merged b
   working directory is now at c920dd828523
 
+casually checking issue6141: position of p2 is not changed
+
+  $ hg log -r 'predecessors(.) + .'
+  changeset:   8:3f6f25057afb
+  branch:      integration
+  parent:      6:cfc4c333724f
+  parent:      7:61eff7f7bb6c
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  obsolete:    rebased using evolve as 11:c920dd828523
+  summary:     merged aa
+  
+  changeset:   11:c920dd828523
+  branch:      integration
+  tag:         tip
+  parent:      4:e33aee2c715e
+  parent:      7:61eff7f7bb6c
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  instability: orphan
+  summary:     merged aa
+  
+
+test that we successfully got rid of the bad file
+
+  $ hg d --git -r 'predecessors(.)' -r '.'
+  diff --git a/a_bad_commit b/a_bad_commit
+  deleted file mode 100644
+  --- a/a_bad_commit
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -a bad commit
+
 evolve creates an obsolete changeset above as 11
+
   $ hg evolve -r .
   cannot solve instability of c920dd828523, skipping
   cannot solve instability of c920dd828523, skipping