: <<COMMENT
   o			r9
   |
   o			r8, merge									shall get changes both from r6(and r3), and r4 (and r2)
  /|  o			r7, branch: no-merge
 o |  |			r6, branch: with-merge						alter 2 blocks, one in the middle of r3's, one itersecting tail of r3's block
 | |  o			r5, branch: no-merge, fork from r3			just to check these revisions do not get among annotated (when ancestry/history is walked)
 | o /			r4											alter some changes from r2, introduce more
 o |/			r3, branch: with-merge, fork from r1		alter continuous block of lines
 | o			r2											changes
  \|
   o			r1
   |
   o			r0
COMMENT
   
touch file1
hg add file1

#  @@ -0,0 +1,6 @@
cat >file1 <<EOF
r0, line 1
r0, line 2
r0, line 3
r0, line 4
r0, line 5
r0, line 6
EOF
hg ci -m "r0"

#  @@ -0,0 +1,1 @@
#  @@ -3,0 +5,1 @@
#  @@ -6,0 +9,2 @@
cat >file1 <<EOF
r1, line 1
r0, line 1
r0, line 2
r0, line 3
r1, line 5
r0, line 4
r0, line 5
r0, line 6
r1, line 9
r1, line 10
EOF
hg ci -m "r1"

#  @@ -2,2 +2,1 @@		0_1, 0_2 --> 2_2
#  @@ -7,1 +5,0 @@		0_5
#  @@ -10,0 +9,1 @@		2_9
cat >file1 <<EOF
r1, line 1
r2, line 2
r0, line 3
r1, line 5
r0, line 4
r0, line 6
r1, line 9
r1, line 10
r2, line 9
EOF
hg ci -m "r2"

#  @@ -5,0 +6,5 @@
hg checkout -r 1
hg branch with-merge
cat >file1 <<EOF
r1, line 1
r0, line 1
r0, line 2
r0, line 3
r1, line 5
r3, line 6
r3, line 7
r3, line 8
r3, line 9
r3, line 10
r0, line 4
r0, line 5
r0, line 6
r1, line 9
r1, line 10
EOF
hg ci -m "r3"

#  @@ -5,0 +6,1 @@		restored 0_5
#  @@ -8,2 +9,3 @@		1_10, 2_9 --> r_{9..11} 
hg checkout -r 2
cat >file1 <<EOF
r1, line 1
r2, line 2
r0, line 3
r1, line 5
r0, line 4
r0, line 5
r0, line 6
r1, line 9
r4, line 9
r4, line 10
r4, line 11
EOF
hg ci -m "r4"

hg checkout -r 2
hg branch no-merge
cat >file1 <<EOF
r1, line 1
r2, line 2
r0, line 3
r0, line 4
r5, line 5
EOF
hg ci -m "r5"

#  @@ -7,1 +7,1 @@		3_7 --> 6_7
#  @@ -10,2 +10,2 @@	3_10, 0_4 --> 6_10, 6_11
hg checkout -r 3
cat >file1 <<EOF
r1, line 1
r0, line 1
r0, line 2
r0, line 3
r1, line 5
r3, line 6
r6, line 7
r3, line 8
r3, line 9
r6, line 10
r6, line 11
r0, line 5
r0, line 6
r1, line 9
r1, line 10
EOF
hg ci -m "r6"

hg checkout -r 5
cat >file1 <<EOF
r1, line 1
r2, line 2
r7, line 3
r0, line 4
r5, line 5
EOF
hg ci -m "r7"

hg checkout -r 4
hg merge --tool internal:merge --rev 6
cat >>file1 <<EOF
r8, line 17
r8, line 18
EOF
hg ci -m "r8"

#  hg diff -c 9 -U 0 file1 | grep @@
#  @@ -4,1 +4,2 @@
#  @@ -11,1 +11,0 @@
#  @@ -16,2 +16,2 @@
cat >file1 <<EOF
r1, line 1
r2, line 2
r0, line 3
r9, line 4
r9, line 5
r3, line 6
r6, line 7
r3, line 8
r3, line 9
r6, line 10
r6, line 11
r0, line 6
r1, line 9
r4, line 9
r4, line 10
r9, line 16
r9, line 17
r8, line 18
EOF
hg ci -m "r9"

