Mercurial > hg
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 .. |