tests: add test showing `evolve --continue` after `next --evolve` is broken
authorPulkit Goyal <7895pulkit@gmail.com>
Wed, 07 Feb 2018 22:41:30 +0530
changeset 3502 8cf1020bd4f9
parent 3501 7c8150697810
child 3503 edabac9e9dc5
tests: add test showing `evolve --continue` after `next --evolve` is broken Recent series fixing `hg evolve --continue` break the continue functionality after a conflicting `hg next --evolve`. This patch adds a test to demonstrate that. It will be fixed in the upcoming patch.
tests/test-evolve-continue.t
--- a/tests/test-evolve-continue.t	Wed May 17 09:39:15 2017 +0200
+++ b/tests/test-evolve-continue.t	Wed Feb 07 22:41:30 2018 +0530
@@ -349,3 +349,65 @@
   |   () draft
   o  0:8fa14d15e168 added hgignore
       () draft
+
+Testing `evolve --continue` after `hg next --evolve`
+
+  $ hg up .^^
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo foobar > g
+  $ hg amend
+  2 new orphan changesets
+
+  $ hg next --evolve
+  move:[22] added g
+  atop:[24] added f
+  merging g
+  warning: conflicts while merging g! (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]
+  $ echo foo > g
+  $ hg resolve -m
+  (no more unresolved files)
+  continue: hg evolve --continue
+  $ hg evolve --continue
+  evolving 22:d2c94a8f44bd "added g"
+  ** Unknown exception encountered with possibly-broken third-party extension evolve
+  ** which supports versions 4.4 of Mercurial.
+  ** Please disable evolve and try your action again.
+  ** If that fixes the bug please report it to https://bz.mercurial-scm.org/
+  ** Python 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609]
+  ** Mercurial Distributed SCM (version 4.5+71-2e11b6cd6953)
+  ** Extensions loaded: rebase, evolve
+  Traceback (most recent call last):
+    File "/tmp/hgtests.NSvQmE/install/bin/hg", line 41, in <module>
+      dispatch.run()
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 88, in run
+      status = (dispatch(req) or 0) & 255
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 183, in dispatch
+      ret = _runcatch(req)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 324, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 332, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/scmutil.py", line 154, in callcatch
+      return func()
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 314, in _runcatchfunc
+      return _dispatch(req)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 918, in _dispatch
+      cmdpats, cmdoptions)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 673, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 926, in _runcommand
+      return cmdfunc()
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/dispatch.py", line 915, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/tmp/hgtests.NSvQmE/install/lib/python/mercurial/util.py", line 1195, in check
+      return func(*args, **kwargs)
+    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/evolvecmd.py", line 1147, in evolve
+      evolvestate['replacements'][ctx.node()] = node
+    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/state.py", line 49, in __getitem__
+      return self.opts[key]
+  KeyError: 'replacements'
+  [1]