tests/test-topic-stack-complex.t
branchstable
changeset 3277 0a6954bd6502
child 3278 e4c0332ecee4
equal deleted inserted replaced
3272:11a2bc798deb 3277:0a6954bd6502
       
     1 Testing `hg stack` on complex cases when we have multiple successors because of
       
     2 divergence, split etc.
       
     3   $ . "$TESTDIR/testlib/topic_setup.sh"
       
     4 
       
     5 Setup
       
     6 
       
     7   $ cat << EOF >> $HGRCPATH
       
     8   > [experimental]
       
     9   > evolution = all
       
    10   > [ui]
       
    11   > interactive = True
       
    12   > [extensions]
       
    13   > show =
       
    14   > EOF
       
    15   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
    16 
       
    17   $ hg init test
       
    18   $ cd test
       
    19   $ echo foo > foo
       
    20   $ hg add foo
       
    21   $ hg ci -m "Added foo"
       
    22   $ hg phase -r . --public
       
    23   $ hg topic foo
       
    24   marked working directory as topic: foo
       
    25   $ echo a > a
       
    26   $ echo b > b
       
    27   $ hg ci -Aqm "Added a and b"
       
    28   $ echo c > c
       
    29   $ echo d > d
       
    30   $ hg ci -Aqm "Added c and d"
       
    31   $ echo e > e
       
    32   $ echo f > f
       
    33   $ hg ci -Aqm "Added e and f"
       
    34   $ hg show work
       
    35   @  f1d3 (foo) Added e and f
       
    36   o  8e82 (foo) Added c and d
       
    37   o  002b (foo) Added a and b
       
    38   o  f360 Added foo
       
    39 
       
    40 Testing in case of split within the topic
       
    41 
       
    42   $ hg stack
       
    43   ### topic: foo
       
    44   ### target: default (branch)
       
    45   t3@ Added e and f (current)
       
    46   t2: Added c and d
       
    47   t1: Added a and b
       
    48   t0^ Added foo (base)
       
    49   $ hg prev
       
    50   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
    51   [2] Added c and d
       
    52 
       
    53   $ echo 0 > num
       
    54   $ cat > editor.sh << '__EOF__'
       
    55   > NUM=$(cat num)
       
    56   > NUM=`expr "$NUM" + 1`
       
    57   > echo "$NUM" > num
       
    58   > echo "split$NUM" > "$1"
       
    59   > __EOF__
       
    60   $ export HGEDITOR="\"sh\" \"editor.sh\""
       
    61 
       
    62   $ hg split << EOF
       
    63   > y
       
    64   > y
       
    65   > n
       
    66   > y
       
    67   > EOF
       
    68   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
    69   adding c
       
    70   adding d
       
    71   diff --git a/c b/c
       
    72   new file mode 100644
       
    73   examine changes to 'c'? [Ynesfdaq?] y
       
    74   
       
    75   @@ -0,0 +1,1 @@
       
    76   +c
       
    77   record change 1/2 to 'c'? [Ynesfdaq?] y
       
    78   
       
    79   diff --git a/d b/d
       
    80   new file mode 100644
       
    81   examine changes to 'd'? [Ynesfdaq?] n
       
    82   
       
    83   Done splitting? [yN] y
       
    84 
       
    85   $ hg stack
       
    86   ### topic: foo
       
    87   ### target: default (branch)
       
    88   t4$ Added e and f (unstable)
       
    89   t3@ split2 (current)
       
    90   t2: split1
       
    91   t1: Added a and b
       
    92   t0^ Added foo (base)
       
    93 
       
    94   $ hg show work
       
    95   @  5cce (foo) split2
       
    96   o  f26c (foo) split1
       
    97   | o  f1d3 (foo) Added e and f
       
    98   | x  8e82 (foo) Added c and d
       
    99   |/
       
   100   o  002b (foo) Added a and b
       
   101   o  f360 Added foo
       
   102 
       
   103   $ hg prev
       
   104   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   105   [4] split1
       
   106   $ echo foo > c
       
   107   $ hg diff
       
   108   diff -r f26c1b9addde c
       
   109   --- a/c	Thu Jan 01 00:00:00 1970 +0000
       
   110   +++ b/c	Thu Jan 01 00:00:00 1970 +0000
       
   111   @@ -1,1 +1,1 @@
       
   112   -c
       
   113   +foo
       
   114 
       
   115   $ hg amend
       
   116   1 new orphan changesets
       
   117   $ hg show work
       
   118   @  7d94 (foo) split1
       
   119   | o  5cce (foo) split2
       
   120   | x  f26c (foo) split1
       
   121   |/
       
   122   | o  f1d3 (foo) Added e and f
       
   123   | x  8e82 (foo) Added c and d
       
   124   |/
       
   125   o  002b (foo) Added a and b
       
   126   o  f360 Added foo
       
   127 
       
   128   $ hg stack
       
   129   ### topic: foo (2 heads)
       
   130   ### target: default (branch), 2 behind
       
   131   ** unknown exception encountered, please report by visiting
       
   132   ** https://mercurial-scm.org/wiki/BugTracker
       
   133   ** Python 2.7.12 (default, Jul 18 2016, 15:04:44) [GCC 4.8.4]
       
   134   ** Mercurial Distributed SCM (version 4.4.2+379-6812f5c492c7)
       
   135   ** Extensions loaded: rebase, topic, show, evolve
       
   136   Traceback (most recent call last):
       
   137     File "/tmp/hgtests.d2IKdr/install/bin/hg", line 41, in <module>
       
   138       dispatch.run()
       
   139     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 88, in run
       
   140       status = (dispatch(req) or 0) & 255
       
   141     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 177, in dispatch
       
   142       ret = _runcatch(req)
       
   143     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 318, in _runcatch
       
   144       return _callcatch(ui, _runcatchfunc)
       
   145     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 326, in _callcatch
       
   146       return scmutil.callcatch(ui, func)
       
   147     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/scmutil.py", line 154, in callcatch
       
   148       return func()
       
   149     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 308, in _runcatchfunc
       
   150       return _dispatch(req)
       
   151     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 912, in _dispatch
       
   152       cmdpats, cmdoptions)
       
   153     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 667, in runcommand
       
   154       ret = _runcommand(ui, options, cmd, d)
       
   155     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 920, in _runcommand
       
   156       return cmdfunc()
       
   157     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/dispatch.py", line 909, in <lambda>
       
   158       d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
       
   159     File "/tmp/hgtests.d2IKdr/install/lib/python/mercurial/util.py", line 1188, in check
       
   160       return func(*args, **kwargs)
       
   161     File "/home/pulkit/repo/mutable-history/hgext3rd/topic/__init__.py", line 663, in cmdstack
       
   162       return stack.showstack(ui, repo, branch=branch, topic=topic, opts=opts)
       
   163     File "/home/pulkit/repo/mutable-history/hgext3rd/topic/stack.py", line 288, in showstack
       
   164       p1 = repo[_singlesuccessor(repo, p1)]
       
   165     File "/home/pulkit/repo/mutable-history/hgext3rd/topic/evolvebits.py", line 92, in _singlesuccessor
       
   166       raise MultipleSuccessorsError(newer)
       
   167   hgext3rd.topic.evolvebits.MultipleSuccessorsError
       
   168   [1]