changeset 3379:ef475fce0dd2

test: add a test to reproduce issue 5720
author Boris Feld <boris.feld@octobus.net>
date Wed, 25 Oct 2017 11:27:04 +0200
parents 577bfc34e19b
children 733e01473ec2
files tests/test-issue-5720.t
diffstat 1 files changed, 87 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-issue-5720.t	Wed Oct 25 11:27:04 2017 +0200
@@ -0,0 +1,87 @@
+This test file test the #5720 issue
+
+Check that `hg evolve --continue` doesn't change changeset phase from secret
+to draft after a merge conflict.
+
+https://bz.mercurial-scm.org/show_bug.cgi?id=5720
+
+Global setup
+============
+
+  $ . $TESTDIR/testlib/common.sh
+  $ cat >> $HGRCPATH <<EOF
+  > [ui]
+  > interactive = true
+  > [phases]
+  > publish=False
+  > [extensions]
+  > evolve =
+  > EOF
+
+Test
+====
+
+  $ hg init $TESTTMP/issue-5720
+  $ cd $TESTTMP/issue-5720
+
+Create two drafts commits and one secret
+  $ echo a > a
+  $ hg commit -Am a
+  adding a
+  $ echo b > a
+  $ hg commit -m b
+  $ echo c > a
+  $ hg commit --secret -m c
+  $ hg log -G -T "{rev}: {phase}"
+  @  2: secret
+  |
+  o  1: draft
+  |
+  o  0: draft
+  
+Amend the second draft with new content
+  $ hg prev
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  [1] b
+  $ echo b2 > a
+  $ hg amend
+  1 new orphan changesets
+  $ hg log -G -T "{rev}: {phase}"
+  @  3: draft
+  |
+  | *  2: secret
+  | |
+  | x  1: draft
+  |/
+  o  0: draft
+  
+Evolve which triggers a conflict
+  $ hg evolve
+  move:[2] c
+  atop:[3] b
+  merging a
+  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+  evolve failed!
+  fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
+  abort: unresolved merge conflicts (see hg help resolve)
+  [255]
+
+Fix the conflict
+  $ echo c2 > a
+  $ hg resolve -m
+  (no more unresolved files)
+
+Continue the evolution
+  $ hg evolve --continue
+  grafting 2:13833940840c "c"
+
+Tip should stay in secret phase
+  $ hg log -G -T "{rev}: {phase}"
+  @  4: draft
+  |
+  o  3: draft
+  |
+  o  0: draft
+  
+  $ hg log -r . -T '{phase}\n'
+  draft