##// END OF EJS Templates
test-revset: enable for Windows...
Adrian Buehlmann -
r16851:c739227b default
parent child Browse files
Show More
@@ -1,808 +1,806
1 $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate /a/b/c/ as if it was a real file path
2
3 1 $ HGENCODING=utf-8
4 2 $ export HGENCODING
5 3
6 4 $ try() {
7 5 > hg debugrevspec --debug "$@"
8 6 > }
9 7
10 8 $ log() {
11 9 > hg log --template '{rev}\n' -r "$1"
12 10 > }
13 11
14 12 $ hg init repo
15 13 $ cd repo
16 14
17 15 $ echo a > a
18 16 $ hg branch a
19 17 marked working directory as branch a
20 18 (branches are permanent and global, did you want a bookmark?)
21 19 $ hg ci -Aqm0
22 20
23 21 $ echo b > b
24 22 $ hg branch b
25 23 marked working directory as branch b
26 24 (branches are permanent and global, did you want a bookmark?)
27 25 $ hg ci -Aqm1
28 26
29 27 $ rm a
30 28 $ hg branch a-b-c-
31 29 marked working directory as branch a-b-c-
32 30 (branches are permanent and global, did you want a bookmark?)
33 31 $ hg ci -Aqm2 -u Bob
34 32
35 33 $ hg log -r "extra('branch', 'a-b-c-')" --template '{rev}\n'
36 34 2
37 35 $ hg log -r "extra('branch')" --template '{rev}\n'
38 36 0
39 37 1
40 38 2
41 39 $ hg log -r "extra('branch', 're:a')" --template '{rev} {branch}\n'
42 40 0 a
43 41 2 a-b-c-
44 42
45 43 $ hg co 1
46 44 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
47 45 $ hg branch +a+b+c+
48 46 marked working directory as branch +a+b+c+
49 47 (branches are permanent and global, did you want a bookmark?)
50 48 $ hg ci -Aqm3
51 49
52 50 $ hg co 2 # interleave
53 51 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
54 52 $ echo bb > b
55 53 $ hg branch -- -a-b-c-
56 54 marked working directory as branch -a-b-c-
57 55 (branches are permanent and global, did you want a bookmark?)
58 56 $ hg ci -Aqm4 -d "May 12 2005"
59 57
60 58 $ hg co 3
61 59 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
62 $ hg branch /a/b/c/
63 marked working directory as branch /a/b/c/
60 $ hg branch !a/b/c/
61 marked working directory as branch !a/b/c/
64 62 (branches are permanent and global, did you want a bookmark?)
65 63 $ hg ci -Aqm"5 bug"
66 64
67 65 $ hg merge 4
68 66 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
69 67 (branch merge, don't forget to commit)
70 68 $ hg branch _a_b_c_
71 69 marked working directory as branch _a_b_c_
72 70 (branches are permanent and global, did you want a bookmark?)
73 71 $ hg ci -Aqm"6 issue619"
74 72
75 73 $ hg branch .a.b.c.
76 74 marked working directory as branch .a.b.c.
77 75 (branches are permanent and global, did you want a bookmark?)
78 76 $ hg ci -Aqm7
79 77
80 78 $ hg branch all
81 79 marked working directory as branch all
82 80 (branches are permanent and global, did you want a bookmark?)
83 81 $ hg ci --close-branch -Aqm8
84 82 abort: can only close branch heads
85 83 [255]
86 84
87 85 $ hg co 4
88 86 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
89 87 $ hg branch é
90 88 marked working directory as branch \xc3\xa9 (esc)
91 89 (branches are permanent and global, did you want a bookmark?)
92 90 $ hg ci -Aqm9
93 91
94 92 $ hg tag -r6 1.0
95 93
96 94 $ hg clone --quiet -U -r 7 . ../remote1
97 95 $ hg clone --quiet -U -r 8 . ../remote2
98 96 $ echo "[paths]" >> .hg/hgrc
99 97 $ echo "default = ../remote1" >> .hg/hgrc
100 98
101 99 names that should work without quoting
102 100
103 101 $ try a
104 102 ('symbol', 'a')
105 103 0
106 104 $ try b-a
107 105 (minus
108 106 ('symbol', 'b')
109 107 ('symbol', 'a'))
110 108 1
111 109 $ try _a_b_c_
112 110 ('symbol', '_a_b_c_')
113 111 6
114 112 $ try _a_b_c_-a
115 113 (minus
116 114 ('symbol', '_a_b_c_')
117 115 ('symbol', 'a'))
118 116 6
119 117 $ try .a.b.c.
120 118 ('symbol', '.a.b.c.')
121 119 7
122 120 $ try .a.b.c.-a
123 121 (minus
124 122 ('symbol', '.a.b.c.')
125 123 ('symbol', 'a'))
126 124 7
127 125 $ try -- '-a-b-c-' # complains
128 126 hg: parse error at 7: not a prefix: end
129 127 [255]
130 128 $ log -a-b-c- # succeeds with fallback
131 129 4
132 130 $ try -- -a-b-c--a # complains
133 131 (minus
134 132 (minus
135 133 (minus
136 134 (negate
137 135 ('symbol', 'a'))
138 136 ('symbol', 'b'))
139 137 ('symbol', 'c'))
140 138 (negate
141 139 ('symbol', 'a')))
142 140 abort: unknown revision '-a'!
143 141 [255]
144 142 $ try é
145 143 ('symbol', '\xc3\xa9')
146 144 9
147 145
148 146 quoting needed
149 147
150 148 $ try '"-a-b-c-"-a'
151 149 (minus
152 150 ('string', '-a-b-c-')
153 151 ('symbol', 'a'))
154 152 4
155 153
156 154 $ log '1 or 2'
157 155 1
158 156 2
159 157 $ log '1|2'
160 158 1
161 159 2
162 160 $ log '1 and 2'
163 161 $ log '1&2'
164 162 $ try '1&2|3' # precedence - and is higher
165 163 (or
166 164 (and
167 165 ('symbol', '1')
168 166 ('symbol', '2'))
169 167 ('symbol', '3'))
170 168 3
171 169 $ try '1|2&3'
172 170 (or
173 171 ('symbol', '1')
174 172 (and
175 173 ('symbol', '2')
176 174 ('symbol', '3')))
177 175 1
178 176 $ try '1&2&3' # associativity
179 177 (and
180 178 (and
181 179 ('symbol', '1')
182 180 ('symbol', '2'))
183 181 ('symbol', '3'))
184 182 $ try '1|(2|3)'
185 183 (or
186 184 ('symbol', '1')
187 185 (group
188 186 (or
189 187 ('symbol', '2')
190 188 ('symbol', '3'))))
191 189 1
192 190 2
193 191 3
194 192 $ log '1.0' # tag
195 193 6
196 194 $ log 'a' # branch
197 195 0
198 196 $ log '2785f51ee'
199 197 0
200 198 $ log 'date(2005)'
201 199 4
202 200 $ log 'date(this is a test)'
203 201 hg: parse error at 10: unexpected token: symbol
204 202 [255]
205 203 $ log 'date()'
206 204 hg: parse error: date requires a string
207 205 [255]
208 206 $ log 'date'
209 207 hg: parse error: can't use date here
210 208 [255]
211 209 $ log 'date('
212 210 hg: parse error at 5: not a prefix: end
213 211 [255]
214 212 $ log 'date(tip)'
215 213 abort: invalid date: 'tip'
216 214 [255]
217 215 $ log '"date"'
218 216 abort: unknown revision 'date'!
219 217 [255]
220 218 $ log 'date(2005) and 1::'
221 219 4
222 220
223 221 $ log 'ancestor(1)'
224 222 hg: parse error: ancestor requires two arguments
225 223 [255]
226 224 $ log 'ancestor(4,5)'
227 225 1
228 226 $ log 'ancestor(4,5) and 4'
229 227 $ log 'ancestors(5)'
230 228 0
231 229 1
232 230 3
233 231 5
234 232 $ log 'author(bob)'
235 233 2
236 234 $ log 'author("re:bob|test")'
237 235 0
238 236 1
239 237 2
240 238 3
241 239 4
242 240 5
243 241 6
244 242 7
245 243 8
246 244 9
247 245 $ log 'branch(é)'
248 246 8
249 247 9
250 248 $ log 'branch(a)'
251 249 0
252 250 $ hg log -r 'branch("re:a")' --template '{rev} {branch}\n'
253 251 0 a
254 252 2 a-b-c-
255 253 3 +a+b+c+
256 254 4 -a-b-c-
257 5 /a/b/c/
255 5 !a/b/c/
258 256 6 _a_b_c_
259 257 7 .a.b.c.
260 258 $ log 'children(ancestor(4,5))'
261 259 2
262 260 3
263 261 $ log 'closed()'
264 262 $ log 'contains(a)'
265 263 0
266 264 1
267 265 3
268 266 5
269 267 $ log 'desc(B)'
270 268 5
271 269 $ log 'descendants(2 or 3)'
272 270 2
273 271 3
274 272 4
275 273 5
276 274 6
277 275 7
278 276 8
279 277 9
280 278 $ log 'file("b*")'
281 279 1
282 280 4
283 281 $ log 'follow()'
284 282 0
285 283 1
286 284 2
287 285 4
288 286 8
289 287 9
290 288 $ log 'grep("issue\d+")'
291 289 6
292 290 $ try 'grep("(")' # invalid regular expression
293 291 (func
294 292 ('symbol', 'grep')
295 293 ('string', '('))
296 294 hg: parse error: invalid match pattern: unbalanced parenthesis
297 295 [255]
298 296 $ try 'grep("\bissue\d+")'
299 297 (func
300 298 ('symbol', 'grep')
301 299 ('string', '\x08issue\\d+'))
302 300 $ try 'grep(r"\bissue\d+")'
303 301 (func
304 302 ('symbol', 'grep')
305 303 ('string', '\\bissue\\d+'))
306 304 6
307 305 $ try 'grep(r"\")'
308 306 hg: parse error at 7: unterminated string
309 307 [255]
310 308 $ log 'head()'
311 309 0
312 310 1
313 311 2
314 312 3
315 313 4
316 314 5
317 315 6
318 316 7
319 317 9
320 318 $ log 'heads(6::)'
321 319 7
322 320 $ log 'keyword(issue)'
323 321 6
324 322 $ log 'limit(head(), 1)'
325 323 0
326 324 $ log 'matching(6)'
327 325 6
328 326 $ log 'matching(6:7, "phase parents user date branch summary files description substate")'
329 327 6
330 328 7
331 329 $ log 'max(contains(a))'
332 330 5
333 331 $ log 'min(contains(a))'
334 332 0
335 333 $ log 'merge()'
336 334 6
337 335 $ log 'modifies(b)'
338 336 4
339 337 $ log 'modifies("path:b")'
340 338 4
341 339 $ log 'modifies("*")'
342 340 4
343 341 6
344 342 $ log 'modifies("set:modified()")'
345 343 4
346 344 $ log 'id(5)'
347 345 2
348 346 $ log 'outgoing()'
349 347 8
350 348 9
351 349 $ log 'outgoing("../remote1")'
352 350 8
353 351 9
354 352 $ log 'outgoing("../remote2")'
355 353 3
356 354 5
357 355 6
358 356 7
359 357 9
360 358 $ log 'p1(merge())'
361 359 5
362 360 $ log 'p2(merge())'
363 361 4
364 362 $ log 'parents(merge())'
365 363 4
366 364 5
367 365 $ log 'removes(a)'
368 366 2
369 367 6
370 368 $ log 'roots(all())'
371 369 0
372 370 $ log 'reverse(2 or 3 or 4 or 5)'
373 371 5
374 372 4
375 373 3
376 374 2
377 375 $ log 'rev(5)'
378 376 5
379 377 $ log 'sort(limit(reverse(all()), 3))'
380 378 7
381 379 8
382 380 9
383 381 $ log 'sort(2 or 3 or 4 or 5, date)'
384 382 2
385 383 3
386 384 5
387 385 4
388 386 $ log 'tagged()'
389 387 6
390 388 $ log 'tag()'
391 389 6
392 390 $ log 'tag(1.0)'
393 391 6
394 392 $ log 'tag(tip)'
395 393 9
396 394
397 395 we can use patterns when searching for tags
398 396
399 397 $ log 'tag("1..*")'
400 398 abort: tag '1..*' does not exist
401 399 [255]
402 400 $ log 'tag("re:1..*")'
403 401 6
404 402 $ log 'tag("re:[0-9].[0-9]")'
405 403 6
406 404 $ log 'tag("literal:1.0")'
407 405 6
408 406 $ log 'tag("re:0..*")'
409 407 abort: no tags exist that match '0..*'
410 408 [255]
411 409
412 410 $ log 'tag(unknown)'
413 411 abort: tag 'unknown' does not exist
414 412 [255]
415 413 $ log 'branch(unknown)'
416 414 abort: unknown revision 'unknown'!
417 415 [255]
418 416 $ log 'user(bob)'
419 417 2
420 418
421 419 $ log '4::8'
422 420 4
423 421 8
424 422 $ log '4:8'
425 423 4
426 424 5
427 425 6
428 426 7
429 427 8
430 428
431 429 $ log 'sort(!merge() & (modifies(b) | user(bob) | keyword(bug) | keyword(issue) & 1::9), "-date")'
432 430 4
433 431 2
434 432 5
435 433
436 434 $ log 'not 0 and 0:2'
437 435 1
438 436 2
439 437 $ log 'not 1 and 0:2'
440 438 0
441 439 2
442 440 $ log 'not 2 and 0:2'
443 441 0
444 442 1
445 443 $ log '(1 and 2)::'
446 444 $ log '(1 and 2):'
447 445 $ log '(1 and 2):3'
448 446 $ log 'sort(head(), -rev)'
449 447 9
450 448 7
451 449 6
452 450 5
453 451 4
454 452 3
455 453 2
456 454 1
457 455 0
458 456 $ log '4::8 - 8'
459 457 4
460 458 $ log 'matching(1 or 2 or 3) and (2 or 3 or 1)'
461 459 2
462 460 3
463 461 1
464 462
465 463 issue2437
466 464
467 465 $ log '3 and p1(5)'
468 466 3
469 467 $ log '4 and p2(6)'
470 468 4
471 469 $ log '1 and parents(:2)'
472 470 1
473 471 $ log '2 and children(1:)'
474 472 2
475 473 $ log 'roots(all()) or roots(all())'
476 474 0
477 475 $ hg debugrevspec 'roots(all()) or roots(all())'
478 476 0
479 477 $ log 'heads(branch(é)) or heads(branch(é))'
480 478 9
481 479 $ log 'ancestors(8) and (heads(branch("-a-b-c-")) or heads(branch(é)))'
482 480 4
483 481
484 482 issue2654: report a parse error if the revset was not completely parsed
485 483
486 484 $ log '1 OR 2'
487 485 hg: parse error at 2: invalid token
488 486 [255]
489 487
490 488 or operator should preserve ordering:
491 489 $ log 'reverse(2::4) or tip'
492 490 4
493 491 2
494 492 9
495 493
496 494 parentrevspec
497 495
498 496 $ log 'merge()^0'
499 497 6
500 498 $ log 'merge()^'
501 499 5
502 500 $ log 'merge()^1'
503 501 5
504 502 $ log 'merge()^2'
505 503 4
506 504 $ log 'merge()^^'
507 505 3
508 506 $ log 'merge()^1^'
509 507 3
510 508 $ log 'merge()^^^'
511 509 1
512 510
513 511 $ log 'merge()~0'
514 512 6
515 513 $ log 'merge()~1'
516 514 5
517 515 $ log 'merge()~2'
518 516 3
519 517 $ log 'merge()~2^1'
520 518 1
521 519 $ log 'merge()~3'
522 520 1
523 521
524 522 $ log '(-3:tip)^'
525 523 4
526 524 6
527 525 8
528 526
529 527 $ log 'tip^foo'
530 528 hg: parse error: ^ expects a number 0, 1, or 2
531 529 [255]
532 530
533 531 aliases:
534 532
535 533 $ echo '[revsetalias]' >> .hg/hgrc
536 534 $ echo 'm = merge()' >> .hg/hgrc
537 535 $ echo 'sincem = descendants(m)' >> .hg/hgrc
538 536 $ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc
539 537 $ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
540 538 $ echo 'rs4(ARG1, ARGA, ARGB, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
541 539
542 540 $ try m
543 541 ('symbol', 'm')
544 542 (func
545 543 ('symbol', 'merge')
546 544 None)
547 545 6
548 546
549 547 test alias recursion
550 548
551 549 $ try sincem
552 550 ('symbol', 'sincem')
553 551 (func
554 552 ('symbol', 'descendants')
555 553 (func
556 554 ('symbol', 'merge')
557 555 None))
558 556 6
559 557 7
560 558
561 559 test infinite recursion
562 560
563 561 $ echo 'recurse1 = recurse2' >> .hg/hgrc
564 562 $ echo 'recurse2 = recurse1' >> .hg/hgrc
565 563 $ try recurse1
566 564 ('symbol', 'recurse1')
567 565 hg: parse error: infinite expansion of revset alias "recurse1" detected
568 566 [255]
569 567
570 568 $ echo 'level1($1, $2) = $1 or $2' >> .hg/hgrc
571 569 $ echo 'level2($1, $2) = level1($2, $1)' >> .hg/hgrc
572 570 $ try "level2(level1(1, 2), 3)"
573 571 (func
574 572 ('symbol', 'level2')
575 573 (list
576 574 (func
577 575 ('symbol', 'level1')
578 576 (list
579 577 ('symbol', '1')
580 578 ('symbol', '2')))
581 579 ('symbol', '3')))
582 580 (or
583 581 ('symbol', '3')
584 582 (or
585 583 ('symbol', '1')
586 584 ('symbol', '2')))
587 585 3
588 586 1
589 587 2
590 588
591 589 test nesting and variable passing
592 590
593 591 $ echo 'nested($1) = nested2($1)' >> .hg/hgrc
594 592 $ echo 'nested2($1) = nested3($1)' >> .hg/hgrc
595 593 $ echo 'nested3($1) = max($1)' >> .hg/hgrc
596 594 $ try 'nested(2:5)'
597 595 (func
598 596 ('symbol', 'nested')
599 597 (range
600 598 ('symbol', '2')
601 599 ('symbol', '5')))
602 600 (func
603 601 ('symbol', 'max')
604 602 (range
605 603 ('symbol', '2')
606 604 ('symbol', '5')))
607 605 5
608 606
609 607 test variable isolation, variable placeholders are rewritten as string
610 608 then parsed and matched again as string. Check they do not leak too
611 609 far away.
612 610
613 611 $ echo 'injectparamasstring = max("$1")' >> .hg/hgrc
614 612 $ echo 'callinjection($1) = descendants(injectparamasstring)' >> .hg/hgrc
615 613 $ try 'callinjection(2:5)'
616 614 (func
617 615 ('symbol', 'callinjection')
618 616 (range
619 617 ('symbol', '2')
620 618 ('symbol', '5')))
621 619 (func
622 620 ('symbol', 'descendants')
623 621 (func
624 622 ('symbol', 'max')
625 623 ('string', '$1')))
626 624 abort: unknown revision '$1'!
627 625 [255]
628 626
629 627 $ echo 'injectparamasstring2 = max(_aliasarg("$1"))' >> .hg/hgrc
630 628 $ echo 'callinjection2($1) = descendants(injectparamasstring2)' >> .hg/hgrc
631 629 $ try 'callinjection2(2:5)'
632 630 (func
633 631 ('symbol', 'callinjection2')
634 632 (range
635 633 ('symbol', '2')
636 634 ('symbol', '5')))
637 635 hg: parse error: not a function: _aliasarg
638 636 [255]
639 637 >>> data = file('.hg/hgrc', 'rb').read()
640 638 >>> file('.hg/hgrc', 'wb').write(data.replace('_aliasarg', ''))
641 639
642 640 $ try 'd(2:5)'
643 641 (func
644 642 ('symbol', 'd')
645 643 (range
646 644 ('symbol', '2')
647 645 ('symbol', '5')))
648 646 (func
649 647 ('symbol', 'reverse')
650 648 (func
651 649 ('symbol', 'sort')
652 650 (list
653 651 (range
654 652 ('symbol', '2')
655 653 ('symbol', '5'))
656 654 ('symbol', 'date'))))
657 655 4
658 656 5
659 657 3
660 658 2
661 659 $ try 'rs(2 or 3, date)'
662 660 (func
663 661 ('symbol', 'rs')
664 662 (list
665 663 (or
666 664 ('symbol', '2')
667 665 ('symbol', '3'))
668 666 ('symbol', 'date')))
669 667 (func
670 668 ('symbol', 'reverse')
671 669 (func
672 670 ('symbol', 'sort')
673 671 (list
674 672 (or
675 673 ('symbol', '2')
676 674 ('symbol', '3'))
677 675 ('symbol', 'date'))))
678 676 3
679 677 2
680 678 $ try 'rs()'
681 679 (func
682 680 ('symbol', 'rs')
683 681 None)
684 682 hg: parse error: invalid number of arguments: 0
685 683 [255]
686 684 $ try 'rs(2)'
687 685 (func
688 686 ('symbol', 'rs')
689 687 ('symbol', '2'))
690 688 hg: parse error: invalid number of arguments: 1
691 689 [255]
692 690 $ try 'rs(2, data, 7)'
693 691 (func
694 692 ('symbol', 'rs')
695 693 (list
696 694 (list
697 695 ('symbol', '2')
698 696 ('symbol', 'data'))
699 697 ('symbol', '7')))
700 698 hg: parse error: invalid number of arguments: 3
701 699 [255]
702 700 $ try 'rs4(2 or 3, x, x, date)'
703 701 (func
704 702 ('symbol', 'rs4')
705 703 (list
706 704 (list
707 705 (list
708 706 (or
709 707 ('symbol', '2')
710 708 ('symbol', '3'))
711 709 ('symbol', 'x'))
712 710 ('symbol', 'x'))
713 711 ('symbol', 'date')))
714 712 (func
715 713 ('symbol', 'reverse')
716 714 (func
717 715 ('symbol', 'sort')
718 716 (list
719 717 (or
720 718 ('symbol', '2')
721 719 ('symbol', '3'))
722 720 ('symbol', 'date'))))
723 721 3
724 722 2
725 723
726 724 issue2549 - correct optimizations
727 725
728 726 $ log 'limit(1 or 2 or 3, 2) and not 2'
729 727 1
730 728 $ log 'max(1 or 2) and not 2'
731 729 $ log 'min(1 or 2) and not 1'
732 730 $ log 'last(1 or 2, 1) and not 2'
733 731
734 732 tests for 'remote()' predicate:
735 733 #. (csets in remote) (id) (remote)
736 734 1. less than local current branch "default"
737 735 2. same with local specified "default"
738 736 3. more than local specified specified
739 737
740 738 $ hg clone --quiet -U . ../remote3
741 739 $ cd ../remote3
742 740 $ hg update -q 7
743 741 $ echo r > r
744 742 $ hg ci -Aqm 10
745 743 $ log 'remote()'
746 744 7
747 745 $ log 'remote("a-b-c-")'
748 746 2
749 747 $ cd ../repo
750 748 $ log 'remote(".a.b.c.", "../remote3")'
751 749
752 750 $ cd ..
753 751
754 752 test author/desc/keyword in problematic encoding
755 753 # unicode: cp932:
756 754 # u30A2 0x83 0x41(= 'A')
757 755 # u30C2 0x83 0x61(= 'a')
758 756
759 757 $ hg init problematicencoding
760 758 $ cd problematicencoding
761 759
762 760 $ python > setup.sh <<EOF
763 761 > print u'''
764 762 > echo a > text
765 763 > hg add text
766 764 > hg --encoding utf-8 commit -u '\u30A2' -m none
767 765 > echo b > text
768 766 > hg --encoding utf-8 commit -u '\u30C2' -m none
769 767 > echo c > text
770 768 > hg --encoding utf-8 commit -u none -m '\u30A2'
771 769 > echo d > text
772 770 > hg --encoding utf-8 commit -u none -m '\u30C2'
773 771 > '''.encode('utf-8')
774 772 > EOF
775 773 $ sh < setup.sh
776 774
777 775 test in problematic encoding
778 776 $ python > test.sh <<EOF
779 777 > print u'''
780 778 > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30A2)'
781 779 > echo ====
782 780 > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30C2)'
783 781 > echo ====
784 782 > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30A2)'
785 783 > echo ====
786 784 > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30C2)'
787 785 > echo ====
788 786 > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30A2)'
789 787 > echo ====
790 788 > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30C2)'
791 789 > '''.encode('cp932')
792 790 > EOF
793 791 $ sh < test.sh
794 792 0
795 793 ====
796 794 1
797 795 ====
798 796 2
799 797 ====
800 798 3
801 799 ====
802 800 0
803 801 2
804 802 ====
805 803 1
806 804 3
807 805
808 806 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now