Testing `hg stack` on complex cases when we have multiple successors because of
divergence, split etc.
$ . "$TESTDIR/testlib/topic_setup.sh"
Setup
$ cat << EOF >> $HGRCPATH
> [experimental]
> evolution = all
> [ui]
> interactive = True
> [extensions]
> show =
> EOF
$ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
$ hg init test
$ cd test
$ echo foo > foo
$ hg add foo
$ hg ci -m "Added foo"
$ hg phase -r . --public
$ hg topic foo
marked working directory as topic: foo
$ echo a > a
$ echo b > b
$ hg ci -Aqm "Added a and b"
$ echo c > c
$ echo d > d
$ hg ci -Aqm "Added c and d"
$ echo e > e
$ echo f > f
$ hg ci -Aqm "Added e and f"
$ hg show work
@ f1d36 (foo) Added e and f
o 8e825 (foo) Added c and d
o 002b8 (foo) Added a and b
o f3603 Added foo
Testing in case of split within the topic
$ hg stack
### topic: foo
### target: default (branch)
s3@ Added e and f (current)
s2: Added c and d
s1: Added a and b
s0^ Added foo (base)
$ hg prev
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
[2] Added c and d
$ echo 0 > num
$ cat > editor.sh << '__EOF__'
> NUM=$(cat num)
> NUM=`expr "$NUM" + 1`
> echo "$NUM" > num
> echo "split$NUM" > "$1"
> __EOF__
$ export HGEDITOR="\"sh\" \"editor.sh\""
$ hg split << EOF
> y
> y
> n
> y
> EOF
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
adding c
adding d
diff --git a/c b/c
new file mode 100644
examine changes to 'c'? [Ynesfdaq?] y
@@ -0,0 +1,1 @@
+c
record change 1/2 to 'c'? [Ynesfdaq?] y
diff --git a/d b/d
new file mode 100644
examine changes to 'd'? [Ynesfdaq?] n
Done splitting? [yN] y
$ hg stack
### topic: foo
### target: default (branch)
s4$ Added e and f (unstable)
s3@ split2 (current)
s2: split1
s1: Added a and b
s0^ Added foo (base)
$ hg show work
@ 5ccee (foo) split2
o f26c1 (foo) split1
| o f1d36 (foo) Added e and f
| x 8e825 (foo) Added c and d
|/
o 002b8 (foo) Added a and b
o f3603 Added foo
$ hg prev
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
[4] split1
$ echo foo > c
$ hg diff
diff -r f26c1b9addde c
--- a/c Thu Jan 01 00:00:00 1970 +0000
+++ b/c Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-c
+foo
$ hg amend
1 new unstable changesets
$ hg show work
@ 7d944 (foo) split1
| o 5ccee (foo) split2
| x f26c1 (foo) split1
|/
| o f1d36 (foo) Added e and f
| x 8e825 (foo) Added c and d
|/
o 002b8 (foo) Added a and b
o f3603 Added foo
$ hg stack
### topic: foo (2 heads)
### target: default (branch), 2 behind
s4$ Added e and f (unstable)
s3$ split2 (unstable)
s2@ split1 (current)
s1: Added a and b
s0^ Added foo (base)