Show More
@@ -57,7 +57,6 | |||
|
57 | 57 | tests/test-demandimport.py requires print_function |
|
58 | 58 | tests/test-doctest.py not using absolute_import |
|
59 | 59 | tests/test-hgwebdir-paths.py not using absolute_import |
|
60 | tests/test-hybridencode.py requires print_function | |
|
61 | 60 | tests/test-lrucachedict.py not using absolute_import |
|
62 | 61 | tests/test-lrucachedict.py requires print_function |
|
63 | 62 | tests/test-manifest.py not using absolute_import |
@@ -237,7 +236,6 | |||
|
237 | 236 | mercurial/wireproto.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob) |
|
238 | 237 | tests/readlink.py: invalid syntax: invalid syntax (<unknown>, line *) (glob) |
|
239 | 238 | tests/test-demandimport.py: invalid syntax: invalid syntax (<unknown>, line *) (glob) |
|
240 | tests/test-hybridencode.py: invalid syntax: invalid syntax (<unknown>, line *) (glob) | |
|
241 | 239 | tests/test-lrucachedict.py: invalid syntax: invalid syntax (<unknown>, line *) (glob) |
|
242 | 240 | tests/test-minirst.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob) |
|
243 | 241 | tests/test-parseindex*.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob) |
@@ -1,38 +1,38 | |||
|
1 | from __future__ import absolute_import | |
|
1 | from __future__ import absolute_import, print_function | |
|
2 | 2 | from mercurial import ( |
|
3 | 3 | store, |
|
4 | 4 | ) |
|
5 | 5 | |
|
6 | 6 | def show(s): |
|
7 | 7 | # show test input |
|
8 |
print |
|
|
8 | print("A = '%s'" % s.encode("string_escape")) | |
|
9 | 9 | |
|
10 | 10 | # show the result of the C implementation, if available |
|
11 | 11 | h = store._pathencode(s) |
|
12 |
print |
|
|
12 | print("B = '%s'" % h.encode("string_escape")) | |
|
13 | 13 | |
|
14 | 14 | # compare it with reference implementation in Python |
|
15 | 15 | r = store._hybridencode(s, True) |
|
16 | 16 | if h != r: |
|
17 |
print |
|
|
18 | ||
|
17 | print("R = '%s'" % r.encode("string_escape")) | |
|
18 | print() | |
|
19 | 19 | |
|
20 | 20 | show("data/abcdefghijklmnopqrstuvwxyz0123456789 !#%&'()+,-.;=[]^`{}") |
|
21 | 21 | |
|
22 |
print |
|
|
22 | print("uppercase char X is encoded as _x") | |
|
23 | 23 | show("data/ABCDEFGHIJKLMNOPQRSTUVWXYZ") |
|
24 | 24 | |
|
25 |
print |
|
|
25 | print("underbar is doubled") | |
|
26 | 26 | show("data/_") |
|
27 | 27 | |
|
28 |
print |
|
|
28 | print("tilde is character-encoded") | |
|
29 | 29 | show("data/~") |
|
30 | 30 | |
|
31 |
print |
|
|
31 | print("characters in ASCII code range 1..31") | |
|
32 | 32 | show('data/\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f' |
|
33 | 33 | '\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f') |
|
34 | 34 | |
|
35 |
print |
|
|
35 | print("characters in ASCII code range 126..255") | |
|
36 | 36 | show('data/\x7e\x7f' |
|
37 | 37 | '\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f' |
|
38 | 38 | '\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f') |
@@ -43,18 +43,18 show('data/\xc0\xc1\xc2\xc3\xc4\xc5\xc6\ | |||
|
43 | 43 | show('data/\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef' |
|
44 | 44 | '\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff') |
|
45 | 45 | |
|
46 |
print |
|
|
46 | print("Windows reserved characters") | |
|
47 | 47 | show('data/less <, greater >, colon :, double-quote ", backslash \\' |
|
48 | 48 | ', pipe |, question-mark ?, asterisk *') |
|
49 | 49 | |
|
50 |
print |
|
|
50 | print("encoding directories ending in .hg, .i or .d with '.hg' suffix") | |
|
51 | 51 | show('data/x.h.i/x.hg/x.i/x.d/foo') |
|
52 | 52 | show('data/a.hg/a.i/a.d/foo') |
|
53 | 53 | show('data/au.hg/au.i/au.d/foo') |
|
54 | 54 | show('data/aux.hg/aux.i/aux.d/foo') |
|
55 | 55 | show('data/auxy.hg/auxy.i/auxy.d/foo') |
|
56 | 56 | |
|
57 |
print |
|
|
57 | print("but these are not encoded on *filenames*") | |
|
58 | 58 | show('data/foo/x.hg') |
|
59 | 59 | show('data/foo/x.i') |
|
60 | 60 | show('data/foo/x.d') |
@@ -71,7 +71,7 show('data/foo/auxy.hg') | |||
|
71 | 71 | show('data/foo/auxy.i') |
|
72 | 72 | show('data/foo/auxy.d') |
|
73 | 73 | |
|
74 |
print |
|
|
74 | print("plain .hg, .i and .d directories have the leading dot encoded") | |
|
75 | 75 | show('data/.hg/.i/.d/foo') |
|
76 | 76 | |
|
77 | 77 | show('data/aux.bla/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c.i') |
@@ -129,22 +129,22 show('data/com9./com9y./com9.') | |||
|
129 | 129 | |
|
130 | 130 | show('data/a /au /aux /auxy /aux ') |
|
131 | 131 | |
|
132 |
print |
|
|
132 | print("largest unhashed path") | |
|
133 | 133 | show('data/123456789-123456789-123456789-123456789-123456789-' |
|
134 | 134 | 'unhashed--xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
135 | 135 | '123456789-12345') |
|
136 | 136 | |
|
137 |
print |
|
|
137 | print("shortest hashed path") | |
|
138 | 138 | show('data/123456789-123456789-123456789-123456789-123456789-' |
|
139 | 139 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
140 | 140 | '123456789-123456') |
|
141 | 141 | |
|
142 |
print |
|
|
142 | print("changing one char in part that's hashed away produces a different hash") | |
|
143 | 143 | show('data/123456789-123456789-123456789-123456789-123456789-' |
|
144 | 144 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxy-' |
|
145 | 145 | '123456789-123456') |
|
146 | 146 | |
|
147 |
print |
|
|
147 | print("uppercase hitting length limit due to encoding") | |
|
148 | 148 | show('data/A23456789-123456789-123456789-123456789-123456789-' |
|
149 | 149 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
150 | 150 | '123456789-12345') |
@@ -152,7 +152,7 show('data/Z23456789-123456789-123456789 | |||
|
152 | 152 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
153 | 153 | '123456789-12345') |
|
154 | 154 | |
|
155 |
print |
|
|
155 | print("compare with lowercase not hitting limit") | |
|
156 | 156 | show('data/a23456789-123456789-123456789-123456789-123456789-' |
|
157 | 157 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
158 | 158 | '123456789-12345') |
@@ -160,22 +160,22 show('data/z23456789-123456789-123456789 | |||
|
160 | 160 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
161 | 161 | '123456789-12345') |
|
162 | 162 | |
|
163 |
print |
|
|
163 | print("not hitting limit with any of these") | |
|
164 | 164 | show("data/abcdefghijklmnopqrstuvwxyz0123456789 !#%&'()+,-.;=" |
|
165 | 165 | "[]^`{}xxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-" |
|
166 | 166 | "123456789-12345") |
|
167 | 167 | |
|
168 |
print |
|
|
168 | print("underbar hitting length limit due to encoding") | |
|
169 | 169 | show('data/_23456789-123456789-123456789-123456789-123456789-' |
|
170 | 170 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
171 | 171 | '123456789-12345') |
|
172 | 172 | |
|
173 |
print |
|
|
173 | print("tilde hitting length limit due to encoding") | |
|
174 | 174 | show('data/~23456789-123456789-123456789-123456789-123456789-' |
|
175 | 175 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
176 | 176 | '123456789-12345') |
|
177 | 177 | |
|
178 |
print |
|
|
178 | print("Windows reserved characters hitting length limit") | |
|
179 | 179 | show('data/<23456789-123456789-123456789-123456789-123456789-' |
|
180 | 180 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
181 | 181 | '123456789-12345') |
@@ -201,47 +201,47 show('data/*23456789-123456789-123456789 | |||
|
201 | 201 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
202 | 202 | '123456789-12345') |
|
203 | 203 | |
|
204 |
print |
|
|
204 | print("initial space hitting length limit") | |
|
205 | 205 | show('data/ 23456789-123456789-123456789-123456789-123456789-' |
|
206 | 206 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
207 | 207 | '123456789-12345') |
|
208 | 208 | |
|
209 |
print |
|
|
209 | print("initial dot hitting length limit") | |
|
210 | 210 | show('data/.23456789-123456789-123456789-123456789-123456789-' |
|
211 | 211 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
212 | 212 | '123456789-12345') |
|
213 | 213 | |
|
214 |
print |
|
|
214 | print("trailing space in filename hitting length limit") | |
|
215 | 215 | show('data/123456789-123456789-123456789-123456789-123456789-' |
|
216 | 216 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
217 | 217 | '123456789-1234 ') |
|
218 | 218 | |
|
219 |
print |
|
|
219 | print("trailing dot in filename hitting length limit") | |
|
220 | 220 | show('data/123456789-123456789-123456789-123456789-123456789-' |
|
221 | 221 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
222 | 222 | '123456789-1234.') |
|
223 | 223 | |
|
224 |
print |
|
|
224 | print("initial space in directory hitting length limit") | |
|
225 | 225 | show('data/ x/456789-123456789-123456789-123456789-123456789-' |
|
226 | 226 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
227 | 227 | '123456789-12345') |
|
228 | 228 | |
|
229 |
print |
|
|
229 | print("initial dot in directory hitting length limit") | |
|
230 | 230 | show('data/.x/456789-123456789-123456789-123456789-123456789-' |
|
231 | 231 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
232 | 232 | '123456789-12345') |
|
233 | 233 | |
|
234 |
print |
|
|
234 | print("trailing space in directory hitting length limit") | |
|
235 | 235 | show('data/x /456789-123456789-123456789-123456789-123456789-' |
|
236 | 236 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
237 | 237 | '123456789-12345') |
|
238 | 238 | |
|
239 |
print |
|
|
239 | print("trailing dot in directory hitting length limit") | |
|
240 | 240 | show('data/x./456789-123456789-123456789-123456789-123456789-' |
|
241 | 241 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
242 | 242 | '123456789-12345') |
|
243 | 243 | |
|
244 |
print |
|
|
244 | print("with directories that need direncoding, hitting length limit") | |
|
245 | 245 | show('data/x.i/56789-123456789-123456789-123456789-123456789-' |
|
246 | 246 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
247 | 247 | '123456789-12345') |
@@ -252,7 +252,7 show('data/x.hg/5789-123456789-123456789 | |||
|
252 | 252 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
253 | 253 | '123456789-12345') |
|
254 | 254 | |
|
255 |
print |
|
|
255 | print("Windows reserved filenames, hitting length limit") | |
|
256 | 256 | show('data/con/56789-123456789-123456789-123456789-123456789-' |
|
257 | 257 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
258 | 258 | '123456789-12345') |
@@ -278,100 +278,100 show('data/lpt9/6789-123456789-123456789 | |||
|
278 | 278 | 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
279 | 279 | '123456789-12345') |
|
280 | 280 | |
|
281 |
print |
|
|
281 | print("non-reserved names, just not hitting limit") | |
|
282 | 282 | show('data/123456789-123456789-123456789-123456789-123456789-' |
|
283 | 283 | '/com/com0/lpt/lpt0/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
284 | 284 | '123456789-12345') |
|
285 | 285 | |
|
286 |
print |
|
|
286 | print("hashed path with largest untruncated 1st dir") | |
|
287 | 287 | show('data/12345678/-123456789-123456789-123456789-123456789-' |
|
288 | 288 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
289 | 289 | '123456789-123456') |
|
290 | 290 | |
|
291 |
print |
|
|
291 | print("hashed path with smallest truncated 1st dir") | |
|
292 | 292 | show('data/123456789/123456789-123456789-123456789-123456789-' |
|
293 | 293 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
294 | 294 | '123456789-123456') |
|
295 | 295 | |
|
296 |
print |
|
|
296 | print("hashed path with largest untruncated two dirs") | |
|
297 | 297 | show('data/12345678/12345678/9-123456789-123456789-123456789-' |
|
298 | 298 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
299 | 299 | '123456789-123456') |
|
300 | 300 | |
|
301 |
print |
|
|
301 | print("hashed path with smallest truncated two dirs") | |
|
302 | 302 | show('data/123456789/123456789/123456789-123456789-123456789-' |
|
303 | 303 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
304 | 304 | '123456789-123456') |
|
305 | 305 | |
|
306 |
print |
|
|
306 | print("hashed path with largest untruncated three dirs") | |
|
307 | 307 | show('data/12345678/12345678/12345678/89-123456789-123456789-' |
|
308 | 308 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
309 | 309 | '123456789-123456') |
|
310 | 310 | |
|
311 |
print |
|
|
311 | print("hashed path with smallest truncated three dirs") | |
|
312 | 312 | show('data/123456789/123456789/123456789/123456789-123456789-' |
|
313 | 313 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
314 | 314 | '123456789-123456') |
|
315 | 315 | |
|
316 |
print |
|
|
316 | print("hashed path with largest untruncated four dirs") | |
|
317 | 317 | show('data/12345678/12345678/12345678/12345678/789-123456789-' |
|
318 | 318 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
319 | 319 | '123456789-123456') |
|
320 | 320 | |
|
321 |
print |
|
|
321 | print("hashed path with smallest truncated four dirs") | |
|
322 | 322 | show('data/123456789/123456789/123456789/123456789/123456789-' |
|
323 | 323 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
324 | 324 | '123456789-123456') |
|
325 | 325 | |
|
326 |
print |
|
|
326 | print("hashed path with largest untruncated five dirs") | |
|
327 | 327 | show('data/12345678/12345678/12345678/12345678/12345678/6789-' |
|
328 | 328 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
329 | 329 | '123456789-123456') |
|
330 | 330 | |
|
331 |
print |
|
|
331 | print("hashed path with smallest truncated five dirs") | |
|
332 | 332 | show('data/123456789/123456789/123456789/123456789/123456789/' |
|
333 | 333 | 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
334 | 334 | '123456789-123456') |
|
335 | 335 | |
|
336 |
print |
|
|
336 | print("hashed path with largest untruncated six dirs") | |
|
337 | 337 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
338 | 338 | '678/ed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
339 | 339 | '123456789-123456') |
|
340 | 340 | |
|
341 |
print |
|
|
341 | print("hashed path with smallest truncated six dirs") | |
|
342 | 342 | show('data/123456789/123456789/123456789/123456789/123456789/' |
|
343 | 343 | '123456789/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
344 | 344 | '123456789-123456') |
|
345 | 345 | |
|
346 |
print |
|
|
346 | print("hashed path with largest untruncated seven dirs") | |
|
347 | 347 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
348 | 348 | '678/12345678/xxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
349 | 349 | '123456789-123456') |
|
350 | 350 | |
|
351 |
print |
|
|
351 | print("hashed path with smallest truncated seven dirs") | |
|
352 | 352 | show('data/123456789/123456789/123456789/123456789/123456789/' |
|
353 | 353 | '123456789/123456789/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
354 | 354 | '123456789-123456') |
|
355 | 355 | |
|
356 |
print |
|
|
357 |
print |
|
|
356 | print("hashed path with largest untruncated eight dirs") | |
|
357 | print("(directory 8 is dropped because it hits _maxshortdirslen)") | |
|
358 | 358 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
359 | 359 | '678/12345678/12345678/xxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
360 | 360 | '123456789-123456') |
|
361 | 361 | |
|
362 |
print |
|
|
363 |
print |
|
|
362 | print("hashed path with smallest truncated eight dirs") | |
|
363 | print("(directory 8 is dropped because it hits _maxshortdirslen)") | |
|
364 | 364 | show('data/123456789/123456789/123456789/123456789/123456789/' |
|
365 | 365 | '123456789/123456789/123456789/xxxxxxxxx-xxxxxxxxx-' |
|
366 | 366 | '123456789-123456') |
|
367 | 367 | |
|
368 |
print |
|
|
369 |
print |
|
|
368 | print("hashed path with largest non-dropped directory 8") | |
|
369 | print("(just not hitting the _maxshortdirslen boundary)") | |
|
370 | 370 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
371 | 371 | '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
372 | 372 | '123456789-123456') |
|
373 | 373 | |
|
374 |
print |
|
|
374 | print("...adding one truncated char to dir 1..7 won't drop dir 8") | |
|
375 | 375 | show('data/12345678x/12345678/12345678/12345678/12345678/12345' |
|
376 | 376 | '678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
377 | 377 | '123456789-123456') |
@@ -394,14 +394,14 show('data/12345678/12345678/12345678/12 | |||
|
394 | 394 | '678/12345678x/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
395 | 395 | '123456789-123456') |
|
396 | 396 | |
|
397 |
print |
|
|
398 |
print |
|
|
397 | print("hashed path with shortest dropped directory 8") | |
|
398 | print("(just hitting the _maxshortdirslen boundary)") | |
|
399 | 399 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
400 | 400 | '678/12345678/123456/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
401 | 401 | '123456789-123456') |
|
402 | 402 | |
|
403 |
print |
|
|
404 |
print |
|
|
403 | print("hashed path that drops dir 8 due to dot or space at end is") | |
|
404 | print("encoded, and thus causing to hit _maxshortdirslen") | |
|
405 | 405 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
406 | 406 | '678/12345678/1234./-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
407 | 407 | '123456789-123456') |
@@ -409,7 +409,7 show('data/12345678/12345678/12345678/12 | |||
|
409 | 409 | '678/12345678/1234 /-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
410 | 410 | '123456789-123456') |
|
411 | 411 | |
|
412 |
print |
|
|
412 | print("... with dir 8 short enough for encoding") | |
|
413 | 413 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
414 | 414 | '678/12345678/12./xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
415 | 415 | '123456789-123456') |
@@ -417,9 +417,9 show('data/12345678/12345678/12345678/12 | |||
|
417 | 417 | '678/12345678/12 /xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
418 | 418 | '123456789-123456') |
|
419 | 419 | |
|
420 |
print |
|
|
420 | print('''Extensions are replicated on hashed paths. Note that | |
|
421 | 421 | we only get to encode files that end in .i or .d inside the |
|
422 | store. Encoded filenames are thus bound in length.''' | |
|
422 | store. Encoded filenames are thus bound in length.''') | |
|
423 | 423 | show('data/12345678/12345678/12345678/12345678/12345678/12345' |
|
424 | 424 | '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-' |
|
425 | 425 | '123456789-12.345.i') |
@@ -464,7 +464,7 show('data/12345678/12345678/12345678/12 | |||
|
464 | 464 | 'xxxxx-wwwwwwwww-wwwwwwwww-wwwwwwwww-wwwwwwwww-wwww' |
|
465 | 465 | 'wwwww-wwwwwwwww-wwwwwwwww-wwwwwwwww-wwwwwwwww.i') |
|
466 | 466 | |
|
467 |
print |
|
|
467 | print("paths outside data/ can be encoded") | |
|
468 | 468 | show('metadata/dir/00manifest.i') |
|
469 | 469 | show('metadata/12345678/12345678/12345678/12345678/12345678/' |
|
470 | 470 | '12345678/12345678/12345678/12345678/12345678/12345678/' |
General Comments 0
You need to be logged in to leave comments.
Login now