comparison tests/test-histedit-fold-non-commute.t @ 17646:d44731a3adb8

histedit-test: ensure that non commute test will never commute The previous version would commute if using merge algorithm (to be accurate, merge will cleanly prompt the user during the merge). The new version create and initial commit with some content for all involved files en ensure all changes are a content changes of the first lines. This lead to guaranteed conflict when commuted.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Fri, 21 Sep 2012 19:13:25 +0200
parents 9ae073f10572
children d34ba4991188
comparison
equal deleted inserted replaced
17645:4721fc933943 17646:d44731a3adb8
4 > [extensions] 4 > [extensions]
5 > graphlog= 5 > graphlog=
6 > histedit= 6 > histedit=
7 > EOF 7 > EOF
8 8
9 $ EDITED="$TESTTMP/editedhistory"
10 $ cat > $EDITED <<EOF
11 > pick 177f92b77385 c
12 > pick 055a42cdd887 d
13 > fold bfa474341cc9 does not commute with e
14 > pick e860deea161a e
15 > pick 652413bf663e f
16 > EOF
17 $ initrepo () 9 $ initrepo ()
18 > { 10 > {
19 > hg init $1 11 > hg init $1
20 > cd $1 12 > cd $1
21 > for x in a b c d e f ; do 13 > for x in a b c d e f ; do
14 > echo $x$x$x$x$x > $x
15 > hg add $x
16 > done
17 > hg ci -m 'Initial commit'
18 > for x in a b c d e f ; do
22 > echo $x > $x 19 > echo $x > $x
23 > hg add $x
24 > hg ci -m $x 20 > hg ci -m $x
25 > done 21 > done
26 > echo a >> e 22 > echo 'I can haz no commute' > e
27 > hg ci -m 'does not commute with e' 23 > hg ci -m 'does not commute with e'
28 > cd .. 24 > cd ..
29 > } 25 > }
30 26
31 $ initrepo r 27 $ initrepo r
32 $ cd r 28 $ cd r
29 Initial generation of the command files
30
31 $ EDITED="$TESTTMP/editedhistory"
32 $ hg log --template 'pick {node|short} {rev} {desc}\n' -r 3 >> $EDITED
33 $ hg log --template 'pick {node|short} {rev} {desc}\n' -r 4 >> $EDITED
34 $ hg log --template 'fold {node|short} {rev} {desc}\n' -r 7 >> $EDITED
35 $ hg log --template 'pick {node|short} {rev} {desc}\n' -r 5 >> $EDITED
36 $ hg log --template 'pick {node|short} {rev} {desc}\n' -r 6 >> $EDITED
37 $ cat $EDITED
38 pick 65a9a84f33fd 3 c
39 pick 00f1c5383965 4 d
40 fold 39522b764e3d 7 does not commute with e
41 pick 7b4e2f4b7bcd 5 e
42 pick 500cac37a696 6 f
33 43
34 log before edit 44 log before edit
35 $ hg log --graph 45 $ hg log --graph
36 @ changeset: 6:bfa474341cc9 46 @ changeset: 7:39522b764e3d
37 | tag: tip 47 | tag: tip
38 | user: test 48 | user: test
39 | date: Thu Jan 01 00:00:00 1970 +0000 49 | date: Thu Jan 01 00:00:00 1970 +0000
40 | summary: does not commute with e 50 | summary: does not commute with e
41 | 51 |
42 o changeset: 5:652413bf663e 52 o changeset: 6:500cac37a696
43 | user: test 53 | user: test
44 | date: Thu Jan 01 00:00:00 1970 +0000 54 | date: Thu Jan 01 00:00:00 1970 +0000
45 | summary: f 55 | summary: f
46 | 56 |
47 o changeset: 4:e860deea161a 57 o changeset: 5:7b4e2f4b7bcd
48 | user: test 58 | user: test
49 | date: Thu Jan 01 00:00:00 1970 +0000 59 | date: Thu Jan 01 00:00:00 1970 +0000
50 | summary: e 60 | summary: e
51 | 61 |
52 o changeset: 3:055a42cdd887 62 o changeset: 4:00f1c5383965
53 | user: test 63 | user: test
54 | date: Thu Jan 01 00:00:00 1970 +0000 64 | date: Thu Jan 01 00:00:00 1970 +0000
55 | summary: d 65 | summary: d
56 | 66 |
57 o changeset: 2:177f92b77385 67 o changeset: 3:65a9a84f33fd
58 | user: test 68 | user: test
59 | date: Thu Jan 01 00:00:00 1970 +0000 69 | date: Thu Jan 01 00:00:00 1970 +0000
60 | summary: c 70 | summary: c
61 | 71 |
62 o changeset: 1:d2ae7f538514 72 o changeset: 2:da6535b52e45
63 | user: test 73 | user: test
64 | date: Thu Jan 01 00:00:00 1970 +0000 74 | date: Thu Jan 01 00:00:00 1970 +0000
65 | summary: b 75 | summary: b
66 | 76 |
67 o changeset: 0:cb9a9f314b8b 77 o changeset: 1:c1f09da44841
78 | user: test
79 | date: Thu Jan 01 00:00:00 1970 +0000
80 | summary: a
81 |
82 o changeset: 0:1715188a53c7
68 user: test 83 user: test
69 date: Thu Jan 01 00:00:00 1970 +0000 84 date: Thu Jan 01 00:00:00 1970 +0000
70 summary: a 85 summary: Initial commit
71 86
72 87
73 edit the history 88 edit the history
74 $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle 89 $ HGEDITOR="cat \"$EDITED\" > " hg histedit 3 2>&1 | fixbundle
75 0 files updated, 0 files merged, 2 files removed, 0 files unresolved 90 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
91 patching file e
92 Hunk #1 FAILED at 0
76 1 out of 1 hunks FAILED -- saving rejects to file e.rej 93 1 out of 1 hunks FAILED -- saving rejects to file e.rej
77 abort: Fix up the change and run hg histedit --continue 94 abort: Fix up the change and run hg histedit --continue
78 95
79 fix up 96 fix up
80 $ echo a > e 97 $ echo a > e
81 $ hg add e
82 $ cat > cat.py <<EOF 98 $ cat > cat.py <<EOF
83 > import sys 99 > import sys
84 > print open(sys.argv[1]).read() 100 > print open(sys.argv[1]).read()
85 > print 101 > print
86 > print 102 > print
87 > EOF 103 > EOF
88 $ HGEDITOR="python cat.py" hg histedit --continue 2>&1 | fixbundle | grep -v '2 files removed' 104 $ HGEDITOR="python cat.py" hg histedit --continue 2>&1 | fixbundle | grep -v '2 files removed'
105 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
89 d 106 d
90 *** 107 ***
91 does not commute with e 108 does not commute with e
92 109
93 110
102 119
103 120
104 121
105 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 122 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
106 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 123 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
107 file e already exists 124 patching file e
125 Hunk #1 FAILED at 0
108 1 out of 1 hunks FAILED -- saving rejects to file e.rej 126 1 out of 1 hunks FAILED -- saving rejects to file e.rej
109 abort: Fix up the change and run hg histedit --continue 127 abort: Fix up the change and run hg histedit --continue
110 128
111 just continue this time 129 just continue this time
112 $ hg histedit --continue 2>&1 | fixbundle 130 $ hg histedit --continue 2>&1 | fixbundle
113 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 131 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
114 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 132 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
115 133
116 log after edit 134 log after edit
117 $ hg log --graph 135 $ hg log --graph
118 @ changeset: 4:f768fd60ca34 136 @ changeset: 5:45bd04206744
119 | tag: tip 137 | tag: tip
120 | user: test 138 | user: test
121 | date: Thu Jan 01 00:00:00 1970 +0000 139 | date: Thu Jan 01 00:00:00 1970 +0000
122 | summary: f 140 | summary: f
123 | 141 |
124 o changeset: 3:671efe372e33 142 o changeset: 4:abff6367c13a
125 | user: test 143 | user: test
126 | date: Thu Jan 01 00:00:00 1970 +0000 144 | date: Thu Jan 01 00:00:00 1970 +0000
127 | summary: d 145 | summary: d
128 | 146 |
129 o changeset: 2:177f92b77385 147 o changeset: 3:65a9a84f33fd
130 | user: test 148 | user: test
131 | date: Thu Jan 01 00:00:00 1970 +0000 149 | date: Thu Jan 01 00:00:00 1970 +0000
132 | summary: c 150 | summary: c
133 | 151 |
134 o changeset: 1:d2ae7f538514 152 o changeset: 2:da6535b52e45
135 | user: test 153 | user: test
136 | date: Thu Jan 01 00:00:00 1970 +0000 154 | date: Thu Jan 01 00:00:00 1970 +0000
137 | summary: b 155 | summary: b
138 | 156 |
139 o changeset: 0:cb9a9f314b8b 157 o changeset: 1:c1f09da44841
158 | user: test
159 | date: Thu Jan 01 00:00:00 1970 +0000
160 | summary: a
161 |
162 o changeset: 0:1715188a53c7
140 user: test 163 user: test
141 date: Thu Jan 01 00:00:00 1970 +0000 164 date: Thu Jan 01 00:00:00 1970 +0000
142 summary: a 165 summary: Initial commit
143 166
144 167
145 contents of e 168 contents of e
146 $ hg cat e 169 $ hg cat e
147 a 170 a