Mercurial > hg
annotate tests/test-eol.t @ 14889:a59058fd074a stable
hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
We need to make sure that python hooks I/O goes through the ui descriptors so
it doesn't mess the command server protocol.
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Sat, 09 Jul 2011 19:06:59 +0300 |
parents | 0e217d479c16 |
children | 23c2d7d25329 |
rev | line source |
---|---|
12419 | 1 Test EOL extension |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
2 |
13519
43b3b761d9d1
tests: don't overwrite HGRCPATH
Martin Geisler <mg@aragost.com>
parents:
13505
diff
changeset
|
3 $ cat >> $HGRCPATH <<EOF |
12419 | 4 > [diff] |
5 > git = True | |
6 > EOF | |
7 | |
8 Set up helpers | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
9 |
12419 | 10 $ cat > switch-eol.py <<EOF |
11 > import sys | |
12 > try: | |
13 > import os, msvcrt | |
14 > msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) | |
15 > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) | |
16 > except ImportError: | |
17 > pass | |
18 > (old, new) = sys.argv[1] == 'LF' and ('\n', '\r\n') or ('\r\n', '\n') | |
19 > print "%% switching encoding from %r to %r" % (old, new) | |
20 > for path in sys.argv[2:]: | |
21 > data = file(path, 'rb').read() | |
22 > data = data.replace(old, new) | |
23 > file(path, 'wb').write(data) | |
24 > EOF | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
25 |
12419 | 26 $ seteol () { |
27 > if [ $1 = "LF" ]; then | |
28 > EOL='\n' | |
29 > else | |
30 > EOL='\r\n' | |
31 > fi | |
32 > } | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
33 |
12419 | 34 $ makerepo () { |
35 > seteol $1 | |
36 > echo "% setup $1 repository" | |
37 > hg init repo | |
38 > cd repo | |
39 > cat > .hgeol <<EOF | |
40 > [repository] | |
41 > native = $1 | |
42 > [patterns] | |
43 > mixed.txt = BIN | |
44 > **.txt = native | |
45 > EOF | |
46 > printf "first${EOL}second${EOL}third${EOL}" > a.txt | |
47 > hg commit --addremove -m 'checkin' | |
48 > echo | |
49 > cd .. | |
50 > } | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
51 |
12419 | 52 $ dotest () { |
53 > seteol $1 | |
54 > echo "% hg clone repo repo-$1" | |
55 > hg clone --noupdate repo repo-$1 | |
56 > cd repo-$1 | |
57 > cat > .hg/hgrc <<EOF | |
58 > [extensions] | |
59 > eol = | |
60 > [eol] | |
61 > native = $1 | |
62 > EOF | |
63 > hg update | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
64 > echo '% a.txt' |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
65 > cat a.txt |
12419 | 66 > echo '% hg cat a.txt' |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
67 > hg cat a.txt |
12419 | 68 > printf "fourth${EOL}" >> a.txt |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
69 > echo '% a.txt' |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
70 > cat a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
71 > hg diff |
12419 | 72 > python ../switch-eol.py $1 a.txt |
73 > echo '% hg diff only reports a single changed line:' | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
74 > hg diff |
12419 | 75 > echo "% reverting back to $1 format" |
76 > hg revert a.txt | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
77 > cat a.txt |
12419 | 78 > printf "first\r\nsecond\n" > mixed.txt |
79 > hg add mixed.txt | |
80 > echo "% hg commit of inconsistent .txt file marked as binary (should work)" | |
81 > hg commit -m 'binary file' | |
82 > echo "% hg commit of inconsistent .txt file marked as native (should fail)" | |
83 > printf "first\nsecond\r\nthird\nfourth\r\n" > a.txt | |
84 > hg commit -m 'inconsistent file' | |
85 > echo "% hg commit --config eol.only-consistent=False (should work)" | |
86 > hg commit --config eol.only-consistent=False -m 'inconsistent file' | |
87 > echo "% hg commit of binary .txt file marked as native (binary files always okay)" | |
88 > printf "first${EOL}\0${EOL}third${EOL}" > a.txt | |
89 > hg commit -m 'binary file' | |
90 > cd .. | |
91 > rm -r repo-$1 | |
92 > } | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
93 |
12419 | 94 $ makemixedrepo () { |
95 > echo | |
96 > echo "# setup $1 repository" | |
97 > hg init mixed | |
98 > cd mixed | |
99 > printf "foo\r\nbar\r\nbaz\r\n" > win.txt | |
100 > printf "foo\nbar\nbaz\n" > unix.txt | |
101 > #printf "foo\r\nbar\nbaz\r\n" > mixed.txt | |
102 > hg commit --addremove -m 'created mixed files' | |
103 > echo "# setting repository-native EOLs to $1" | |
104 > cat > .hgeol <<EOF | |
105 > [repository] | |
106 > native = $1 | |
107 > [patterns] | |
108 > **.txt = native | |
109 > EOF | |
110 > hg commit --addremove -m 'added .hgeol' | |
111 > cd .. | |
112 > } | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
113 |
12419 | 114 $ testmixed () { |
115 > echo | |
116 > echo "% hg clone mixed mixed-$1" | |
117 > hg clone mixed mixed-$1 | |
118 > cd mixed-$1 | |
119 > echo '% hg status (eol extension not yet activated)' | |
120 > hg status | |
121 > cat > .hg/hgrc <<EOF | |
122 > [extensions] | |
123 > eol = | |
124 > [eol] | |
125 > native = $1 | |
126 > EOF | |
127 > echo '% hg status (eol activated)' | |
128 > hg status | |
129 > echo '% hg commit' | |
130 > hg commit -m 'synchronized EOLs' | |
131 > echo '% hg status' | |
132 > hg status | |
133 > cd .. | |
134 > rm -r mixed-$1 | |
135 > } | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
136 |
12419 | 137 Basic tests |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
138 |
12419 | 139 $ makerepo LF |
140 % setup LF repository | |
141 adding .hgeol | |
142 adding a.txt | |
143 | |
144 $ dotest LF | |
145 % hg clone repo repo-LF | |
146 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
147 % a.txt |
12419 | 148 first |
149 second | |
150 third | |
151 % hg cat a.txt | |
152 first | |
153 second | |
154 third | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
155 % a.txt |
12419 | 156 first |
157 second | |
158 third | |
159 fourth | |
160 diff --git a/a.txt b/a.txt | |
161 --- a/a.txt | |
162 +++ b/a.txt | |
163 @@ -1,3 +1,4 @@ | |
164 first | |
165 second | |
166 third | |
167 +fourth | |
168 % switching encoding from '\n' to '\r\n' | |
169 % hg diff only reports a single changed line: | |
170 diff --git a/a.txt b/a.txt | |
171 --- a/a.txt | |
172 +++ b/a.txt | |
173 @@ -1,3 +1,4 @@ | |
174 first | |
175 second | |
176 third | |
177 +fourth | |
178 % reverting back to LF format | |
179 first | |
180 second | |
181 third | |
182 % hg commit of inconsistent .txt file marked as binary (should work) | |
183 % hg commit of inconsistent .txt file marked as native (should fail) | |
184 abort: inconsistent newline style in a.txt | |
185 | |
186 % hg commit --config eol.only-consistent=False (should work) | |
187 % hg commit of binary .txt file marked as native (binary files always okay) | |
188 $ dotest CRLF | |
189 % hg clone repo repo-CRLF | |
190 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
191 % a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
192 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
193 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
194 third\r (esc) |
12419 | 195 % hg cat a.txt |
196 first | |
197 second | |
198 third | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
199 % a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
200 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
201 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
202 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
203 fourth\r (esc) |
12419 | 204 diff --git a/a.txt b/a.txt |
205 --- a/a.txt | |
206 +++ b/a.txt | |
207 @@ -1,3 +1,4 @@ | |
208 first | |
209 second | |
210 third | |
211 +fourth | |
212 % switching encoding from '\r\n' to '\n' | |
213 % hg diff only reports a single changed line: | |
214 diff --git a/a.txt b/a.txt | |
215 --- a/a.txt | |
216 +++ b/a.txt | |
217 @@ -1,3 +1,4 @@ | |
218 first | |
219 second | |
220 third | |
221 +fourth | |
222 % reverting back to CRLF format | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
223 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
224 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
225 third\r (esc) |
12419 | 226 % hg commit of inconsistent .txt file marked as binary (should work) |
227 % hg commit of inconsistent .txt file marked as native (should fail) | |
228 abort: inconsistent newline style in a.txt | |
229 | |
230 % hg commit --config eol.only-consistent=False (should work) | |
231 % hg commit of binary .txt file marked as native (binary files always okay) | |
232 $ rm -r repo | |
233 $ makerepo CRLF | |
234 % setup CRLF repository | |
235 adding .hgeol | |
236 adding a.txt | |
237 | |
238 $ dotest LF | |
239 % hg clone repo repo-LF | |
240 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
241 % a.txt |
12419 | 242 first |
243 second | |
244 third | |
245 % hg cat a.txt | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
246 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
247 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
248 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
249 % a.txt |
12419 | 250 first |
251 second | |
252 third | |
253 fourth | |
254 diff --git a/a.txt b/a.txt | |
255 --- a/a.txt | |
256 +++ b/a.txt | |
257 @@ -1,3 +1,4 @@ | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
258 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
259 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
260 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
261 +fourth\r (esc) |
12419 | 262 % switching encoding from '\n' to '\r\n' |
263 % hg diff only reports a single changed line: | |
264 diff --git a/a.txt b/a.txt | |
265 --- a/a.txt | |
266 +++ b/a.txt | |
267 @@ -1,3 +1,4 @@ | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
268 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
269 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
270 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
271 +fourth\r (esc) |
12419 | 272 % reverting back to LF format |
273 first | |
274 second | |
275 third | |
276 % hg commit of inconsistent .txt file marked as binary (should work) | |
277 % hg commit of inconsistent .txt file marked as native (should fail) | |
278 abort: inconsistent newline style in a.txt | |
279 | |
280 % hg commit --config eol.only-consistent=False (should work) | |
281 % hg commit of binary .txt file marked as native (binary files always okay) | |
282 $ dotest CRLF | |
283 % hg clone repo repo-CRLF | |
284 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
285 % a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
286 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
287 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
288 third\r (esc) |
12419 | 289 % hg cat a.txt |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
290 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
291 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
292 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
293 % a.txt |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
294 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
295 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
296 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
297 fourth\r (esc) |
12419 | 298 diff --git a/a.txt b/a.txt |
299 --- a/a.txt | |
300 +++ b/a.txt | |
301 @@ -1,3 +1,4 @@ | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
302 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
303 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
304 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
305 +fourth\r (esc) |
12419 | 306 % switching encoding from '\r\n' to '\n' |
307 % hg diff only reports a single changed line: | |
308 diff --git a/a.txt b/a.txt | |
309 --- a/a.txt | |
310 +++ b/a.txt | |
311 @@ -1,3 +1,4 @@ | |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
312 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
313 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
314 third\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
315 +fourth\r (esc) |
12419 | 316 % reverting back to CRLF format |
12943
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
317 first\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
318 second\r (esc) |
7439ea4146f8
tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents:
12419
diff
changeset
|
319 third\r (esc) |
12419 | 320 % hg commit of inconsistent .txt file marked as binary (should work) |
321 % hg commit of inconsistent .txt file marked as native (should fail) | |
322 abort: inconsistent newline style in a.txt | |
323 | |
324 % hg commit --config eol.only-consistent=False (should work) | |
325 % hg commit of binary .txt file marked as native (binary files always okay) | |
326 $ rm -r repo | |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
327 |
12419 | 328 Mixed tests |
11249
0bb67503ad4b
eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
329 |
12419 | 330 $ makemixedrepo LF |
331 | |
332 # setup LF repository | |
333 adding unix.txt | |
334 adding win.txt | |
335 # setting repository-native EOLs to LF | |
336 adding .hgeol | |
337 $ testmixed LF | |
338 | |
339 % hg clone mixed mixed-LF | |
340 updating to branch default | |
341 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
342 % hg status (eol extension not yet activated) | |
343 % hg status (eol activated) | |
344 M win.txt | |
345 % hg commit | |
346 % hg status | |
347 $ testmixed CRLF | |
348 | |
349 % hg clone mixed mixed-CRLF | |
350 updating to branch default | |
351 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
352 % hg status (eol extension not yet activated) | |
353 % hg status (eol activated) | |
354 M win.txt | |
355 % hg commit | |
356 % hg status | |
357 $ rm -r mixed | |
358 $ makemixedrepo CRLF | |
359 | |
360 # setup CRLF repository | |
361 adding unix.txt | |
362 adding win.txt | |
363 # setting repository-native EOLs to CRLF | |
364 adding .hgeol | |
365 $ testmixed LF | |
366 | |
367 % hg clone mixed mixed-LF | |
368 updating to branch default | |
369 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
370 % hg status (eol extension not yet activated) | |
371 % hg status (eol activated) | |
372 M unix.txt | |
373 % hg commit | |
374 % hg status | |
375 $ testmixed CRLF | |
376 | |
377 % hg clone mixed mixed-CRLF | |
378 updating to branch default | |
379 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
380 % hg status (eol extension not yet activated) | |
381 % hg status (eol activated) | |
382 M unix.txt | |
383 % hg commit | |
384 % hg status | |
385 $ rm -r mixed | |
13475
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
386 |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
387 Test issue2569 -- eol extension takes write lock on reading: |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
388 |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
389 $ echo '[extensions]' >> $HGRCPATH |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
390 $ echo 'eol =' >> $HGRCPATH |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
391 $ hg init repo |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
392 $ cd repo |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
393 $ touch .hgeol |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
394 $ hg status |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
395 ? .hgeol |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
396 $ chmod -R -w .hg |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
397 $ sleep 1 |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
398 $ touch .hgeol |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
399 $ hg status --traceback |
c7bef25ca393
eol: handle LockUnavailable error (issue2569)
Martin Geisler <mg@aragost.com>
parents:
12943
diff
changeset
|
400 ? .hgeol |
13621
c0b0b00f0279
tests: fix permission issue trying to remove test directory
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13505
diff
changeset
|
401 $ chmod -R u+w .hg |
13503
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
402 $ cd .. |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
403 |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
404 Test cleverencode: and cleverdecode: aliases for win32text extension |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
405 |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
406 $ echo '[encode]' >> $HGRCPATH |
13504
85840c4ae2ad
eol: fix test typos introduced in 5007ff32f356
Martin Geisler <mg@aragost.com>
parents:
13503
diff
changeset
|
407 $ echo '**.txt = cleverencode:' >> $HGRCPATH |
13503
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
408 $ echo '[decode]' >> $HGRCPATH |
13504
85840c4ae2ad
eol: fix test typos introduced in 5007ff32f356
Martin Geisler <mg@aragost.com>
parents:
13503
diff
changeset
|
409 $ echo '**.txt = cleverdecode:' >> $HGRCPATH |
13503
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
410 |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
411 $ hg init win32compat |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
412 $ cd win32compat |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
413 $ printf "foo\r\nbar\r\nbaz\r\n" > win.txt |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
414 $ printf "foo\nbar\nbaz\n" > unix.txt |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
415 $ hg add |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
416 adding unix.txt |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
417 adding win.txt |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
418 $ hg commit -m checkin |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
419 |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
420 Check that both files have LF line-endings in the repository: |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
421 |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
422 $ hg cat win.txt |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
423 foo |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
424 bar |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
425 baz |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
426 $ hg cat unix.txt |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
427 foo |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
428 bar |
5007ff32f356
eol: test win32text compatible encode/decode filters
Martin Geisler <mg@aragost.com>
parents:
13475
diff
changeset
|
429 baz |
13505
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
430 |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
431 Test handling of a broken .hgeol file: |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
432 |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
433 $ touch .hgeol |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
434 $ hg add .hgeol |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
435 $ hg commit -m 'clean version' |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
436 $ echo "bad" > .hgeol |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
437 $ hg status |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
438 warning: ignoring .hgeol file due to parse error at .hgeol:1: bad |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
439 M .hgeol |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
440 $ hg revert .hgeol |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
441 warning: ignoring .hgeol file due to parse error at .hgeol:1: bad |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
442 $ hg status |
9b617c56eb65
eol: do not abort on parse error
Martin Geisler <mg@aragost.com>
parents:
13504
diff
changeset
|
443 ? .hgeol.orig |