tests/test-evolve-issue5832.t
author Pulkit Goyal <7895pulkit@gmail.com>
Fri, 06 Apr 2018 15:35:57 +0530
changeset 3655 19e3771f4bcc
child 3656 62e4149435d8
permissions -rw-r--r--
tests: add a test demonstarting issue5832 traceback The traceback will be fixed in upcoming patches.

Test for issue 5832 present at https://bz.mercurial-scm.org/show_bug.cgi?id=5832
================================================================================

Setup
=====

  $ cat >> $HGRCPATH <<EOF
  > [phases]
  > publish = False
  > [alias]
  > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
  > [extensions]
  > EOF
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH

  $ hg init issue5832
  $ cd issue5832

  $ echo base > base
  $ hg ci -Aqm "added base"

  $ echo a > a
  $ hg ci -Aqm "added a"

  $ echo b > b
  $ hg ci -Aqm "added b"

  $ hg up .^^
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
  $ echo c > c
  $ echo d > d
  $ hg ci -Aqm "added c and d"

  $ hg merge
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg ci -m "merge commit"

  $ hg glog
  @    4:b9b387427a53 merge commit
  |\    () draft
  | o  3:9402371b436e added c and d
  | |   () draft
  o |  2:a1da0651488c added b
  | |   () draft
  o |  1:1b24879c5c3c added a
  |/    () draft
  o  0:bde1d2b6b5e5 added base
      () draft

  $ hg up 1b24879c5c3c
  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
  $ echo foo > a
  $ hg amend
  2 new orphan changesets

  $ hg up bde1d2b6b5e5
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo c > c
  $ hg ci -Aqm "added c"
  $ hg up .^
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo d > d
  $ hg ci -Aqm "added d"
  $ hg glog
  @  7:5841d7cf9893 added d
  |   () draft
  | o  6:62fb70414f99 added c
  |/    () draft
  | o  5:7014ec2829cd added a
  |/    () draft
  | *    4:b9b387427a53 merge commit
  | |\    () draft
  +---o  3:9402371b436e added c and d
  | |     () draft
  | *  2:a1da0651488c added b
  | |   () draft
  | x  1:1b24879c5c3c added a
  |/    () draft
  o  0:bde1d2b6b5e5 added base
      () draft

  $ hg prune -r 9402371b436e --succ 62fb70414f99 --succ 5841d7cf9893 --split
  1 changesets pruned

  $ hg glog
  @  7:5841d7cf9893 added d
  |   () draft
  | o  6:62fb70414f99 added c
  |/    () draft
  | o  5:7014ec2829cd added a
  |/    () draft
  | *    4:b9b387427a53 merge commit
  | |\    () draft
  +---x  3:9402371b436e added c and d
  | |     () draft
  | *  2:a1da0651488c added b
  | |   () draft
  | x  1:1b24879c5c3c added a
  |/    () draft
  o  0:bde1d2b6b5e5 added base
      () draft

Checking what evolve is trying to do

  $ hg evolve --dry-run --any --all
  ** unknown exception encountered, please report by visiting
  ** https://mercurial-scm.org/wiki/BugTracker
  ** Python 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609]
  ** Mercurial Distributed SCM (version 4.5.2+1522-110be5264257)
  ** Extensions loaded: evolve
  Traceback (most recent call last):
    File "/tmp/hgtests.Zqw2_x/install/bin/hg", line 41, in <module>
      dispatch.run()
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 93, in run
      status = (dispatch(req) or 0)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 213, in dispatch
      ret = _runcatch(req)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 354, in _runcatch
      return _callcatch(ui, _runcatchfunc)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 362, in _callcatch
      return scmutil.callcatch(ui, func)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/scmutil.py", line 159, in callcatch
      return func()
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 344, in _runcatchfunc
      return _dispatch(req)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 973, in _dispatch
      cmdpats, cmdoptions)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 730, in runcommand
      ret = _runcommand(ui, options, cmd, d)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 981, in _runcommand
      return cmdfunc()
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 970, in <lambda>
      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/util.py", line 1537, in check
      return func(*args, **kwargs)
    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/evolvecmd.py", line 1232, in evolve
      revs = _orderrevs(repo, revs)
    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/evolvecmd.py", line 463, in _orderrevs
      dependencies, rdependencies = utility.builddependencies(repo, revs)
    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/utility.py", line 109, in builddependencies
      dependencies[r].add(succ)
  AttributeError: 'list' object has no attribute 'add'
  [1]

Resolving instability using `hg evolve`

  $ hg evolve --any --all
  ** unknown exception encountered, please report by visiting
  ** https://mercurial-scm.org/wiki/BugTracker
  ** Python 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609]
  ** Mercurial Distributed SCM (version 4.5.2+1522-110be5264257)
  ** Extensions loaded: evolve
  Traceback (most recent call last):
    File "/tmp/hgtests.Zqw2_x/install/bin/hg", line 41, in <module>
      dispatch.run()
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 93, in run
      status = (dispatch(req) or 0)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 213, in dispatch
      ret = _runcatch(req)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 354, in _runcatch
      return _callcatch(ui, _runcatchfunc)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 362, in _callcatch
      return scmutil.callcatch(ui, func)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/scmutil.py", line 159, in callcatch
      return func()
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 344, in _runcatchfunc
      return _dispatch(req)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 973, in _dispatch
      cmdpats, cmdoptions)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 730, in runcommand
      ret = _runcommand(ui, options, cmd, d)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 981, in _runcommand
      return cmdfunc()
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/dispatch.py", line 970, in <lambda>
      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
    File "/tmp/hgtests.Zqw2_x/install/lib/python/mercurial/util.py", line 1537, in check
      return func(*args, **kwargs)
    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/evolvecmd.py", line 1232, in evolve
      revs = _orderrevs(repo, revs)
    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/evolvecmd.py", line 463, in _orderrevs
      dependencies, rdependencies = utility.builddependencies(repo, revs)
    File "/home/foobar/repo/mutable-history/hgext3rd/evolve/utility.py", line 109, in builddependencies
      dependencies[r].add(succ)
  AttributeError: 'list' object has no attribute 'add'
  [1]