comparison tests/test-histedit-no-change.t @ 17085:35729bdd59b6

tests: convert histedit tests to .t Mostly a trivial conversion.
author Mads Kiilerich <mads@kiilerich.com>
date Sat, 30 Jun 2012 03:34:44 +0200
parents tests/test-histedit-no-change@168cc52ad7c2
children 5f2cacb715dc
comparison
equal deleted inserted replaced
17084:69dae7982c85 17085:35729bdd59b6
1 test for old histedit issue #6:
2 editing a changeset without any actual change would corrupt the repository
3
4 $ . "$TESTDIR/histedit-helpers.sh"
5
6 $ cat >> $HGRCPATH <<EOF
7 > [extensions]
8 > graphlog=
9 > histedit=
10 > EOF
11
12 $ initrepo ()
13 > {
14 > dir="$1"
15 > comment="$2"
16 > if [ -n "${comment}" ]; then
17 > echo % ${comment}
18 > echo % ${comment} | sed 's:.:-:g'
19 > fi
20 > hg init ${dir}
21 > cd ${dir}
22 > for x in a b c d e f ; do
23 > echo $x > $x
24 > hg add $x
25 > hg ci -m $x
26 > done
27 > cd ..
28 > }
29
30 $ geneditor ()
31 > {
32 > # generate an editor script for selecting changesets to be edited
33 > choice=$1 # changesets that should be edited (using sed line ranges)
34 > cat <<EOF | sed 's:^....::'
35 > #!/bin/sh
36 > # editing the rules, replacing 'pick' with 'edit' for the chosen lines
37 > sed '${choice}s:^pick:edit:' \$1 > \${1}.tmp
38 > mv \${1}.tmp \$1
39 > # displaying the resulting rules, minus comments and empty lines
40 > sed '/^#/d;/^$/d;s:^:| :' \$1 >&2
41 > EOF
42 > }
43
44 $ startediting ()
45 > {
46 > # begin an editing session
47 > choice="$1" # changesets that should be edited
48 > number="$2" # number of changesets considered (from tip)
49 > comment="$3"
50 > geneditor "${choice}" > edit.sh
51 > chmod +x edit.sh
52 > echo % start editing the history ${comment}
53 > HGEDITOR=./edit.sh hg histedit -- -${number} 2>&1 | fixbundle
54 > }
55
56 $ continueediting ()
57 > {
58 > # continue an edit already in progress
59 > editor="$1" # message editor when finalizing editing
60 > comment="$2"
61 > echo % finalize changeset editing ${comment}
62 > HGEDITOR=${editor} hg histedit --continue 2>&1 | fixbundle
63 > }
64
65 $ graphlog ()
66 > {
67 > comment="${1:-log}"
68 > echo % "${comment}"
69 > hg glog --template '{rev} {node} \"{desc|firstline}\"\n'
70 > }
71
72
73 $ initrepo r1 "test editing with no change"
74 % test editing with no change
75 -----------------------------
76 $ cd r1
77 $ graphlog "log before editing"
78 % log before editing
79 @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
80 |
81 o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
82 |
83 o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
84 |
85 o 2 177f92b773850b59254aa5e923436f921b55483b "c"
86 |
87 o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
88 |
89 o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
90
91 $ startediting 2 3 "(not changing anything)" # edit the 2nd of 3 changesets
92 % start editing the history (not changing anything)
93 | pick 055a42cdd887 3 d
94 | edit e860deea161a 4 e
95 | pick 652413bf663e 5 f
96 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
97 abort: Make changes as needed, you may commit or record as needed now.
98 When you are finished, run hg histedit --continue to resume.
99 $ continueediting true "(leaving commit message unaltered)"
100 % finalize changeset editing (leaving commit message unaltered)
101 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
102
103 check state of working copy
104 $ hg id
105 652413bf663e tip
106
107 $ graphlog "log after history editing"
108 % log after history editing
109 @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
110 |
111 o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
112 |
113 o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
114 |
115 o 2 177f92b773850b59254aa5e923436f921b55483b "c"
116 |
117 o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
118 |
119 o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
120
121
122 $ cd ..
123
124 $ initrepo r2 "test editing with no change, then abort"
125 % test editing with no change, then abort
126 -----------------------------------------
127 $ cd r2
128 $ graphlog "log before editing"
129 % log before editing
130 @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
131 |
132 o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
133 |
134 o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
135 |
136 o 2 177f92b773850b59254aa5e923436f921b55483b "c"
137 |
138 o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
139 |
140 o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
141
142 $ startediting 1,2 3 "(not changing anything)" # edit the 1st two of 3 changesets
143 % start editing the history (not changing anything)
144 | edit 055a42cdd887 3 d
145 | edit e860deea161a 4 e
146 | pick 652413bf663e 5 f
147 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
148 abort: Make changes as needed, you may commit or record as needed now.
149 When you are finished, run hg histedit --continue to resume.
150 $ continueediting true "(leaving commit message unaltered)"
151 % finalize changeset editing (leaving commit message unaltered)
152 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
153 abort: Make changes as needed, you may commit or record as needed now.
154 When you are finished, run hg histedit --continue to resume.
155 $ graphlog "log after first edit"
156 % log after first edit
157 o 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
158 |
159 o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
160 |
161 @ 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
162 |
163 o 2 177f92b773850b59254aa5e923436f921b55483b "c"
164 |
165 o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
166 |
167 o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
168
169
170 abort editing session
171 $ hg histedit --abort 2>&1 | fixbundle
172 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
173
174 $ graphlog "log after abort"
175 % log after abort
176 @ 5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"
177 |
178 o 4 e860deea161a2f77de56603b340ebbb4536308ae "e"
179 |
180 o 3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"
181 |
182 o 2 177f92b773850b59254aa5e923436f921b55483b "c"
183 |
184 o 1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"
185 |
186 o 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b "a"
187
188
189 $ cd ..