tests/test-evolve-issue5967.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 27 Sep 2019 13:03:20 +0200
branchmercurial-4.6
changeset 4867 769b907e644e
parent 4706 de194ed973ba
child 5141 591a0afd2ef3
permissions -rw-r--r--
test-compat: merge mercurial-4.7 into mercurial-4.6

hg evolve --continue and obsmarkers after conflict resolution with no changes to commit (issue5967)
https://bz.mercurial-scm.org/show_bug.cgi?id=5967

  $ . $TESTDIR/testlib/common.sh

  $ hg init issue5967
  $ cd issue5967
  $ cat > .hg/hgrc << EOF
  > [alias]
  > glog = log -GT "{rev}: {desc}"
  > [extensions]
  > evolve=
  > EOF

  $ echo apple > a
  $ hg ci -qAm 'apple'
  $ echo banana > a
  $ hg ci -m 'banana'

Amending revision 0 in a way that causes conflicts

  $ hg prev
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  [0] apple
  $ echo apricot > a
  $ hg amend -m 'apricot'
  1 new orphan changesets

  $ hg glog
  @  2: apricot
  
  *  1: banana
  |
  x  0: apple
  

Trying to evolve, then manually discarding changes from revision 1

  $ hg evolve
  move:[1] banana
  atop:[2] apricot
  merging a
  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
  unresolved merge conflicts
  (see 'hg help evolve.interrupted')
  [1]

  $ echo apricot > a
  $ hg resolve --mark a
  (no more unresolved files)
  continue: hg evolve --continue

This will correctly notice that revision 1 can be dropped

  $ hg evolve --continue
  evolving 1:dd9b5dd30cd6 "banana"
  evolution of 1:dd9b5dd30cd6 created no changes to commit
  working directory is now at 4d6fec23dcc4
  $ hg glog
  @  2: apricot
  

This is important: 1 should not have a successor (especially not revision 2)

  $ hg olog --all
  @  4d6fec23dcc4 (2) apricot
  |
  x  3ba7db0ce860 (0) apple
       rewritten(description, content) as 4d6fec23dcc4 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
  
  $ hg olog --hidden --all 1
  x  dd9b5dd30cd6 (1) banana
       pruned using evolve by test (Thu Jan 01 00:00:00 1970 +0000)