##// END OF EJS Templates
templater: do not use index.partialmatch() directly to calculate shortest()...
Yuya Nishihara -
r30231:741e5d7f stable
parent child Browse files
Show More
@@ -840,13 +840,8 b' def shortest(context, mapping, args):'
840 cl = mapping['ctx']._repo.changelog
840 cl = mapping['ctx']._repo.changelog
841 def isvalid(test):
841 def isvalid(test):
842 try:
842 try:
843 try:
843 if cl._partialmatch(test) is None:
844 cl.index.partialmatch(test)
844 return False
845 except AttributeError:
846 # Pure mercurial doesn't support partialmatch on the index.
847 # Fallback to the slow way.
848 if cl._partialmatch(test) is None:
849 return False
850
845
851 try:
846 try:
852 i = int(test)
847 i = int(test)
@@ -3413,8 +3413,76 b' Test shortest(node) function:'
3413 hg: parse error: shortest() expects an integer minlength
3413 hg: parse error: shortest() expects an integer minlength
3414 [255]
3414 [255]
3415
3415
3416 $ cd ..
3417
3418 Test shortest(node) with the repo having short hash collision:
3419
3420 $ hg init hashcollision
3421 $ cd hashcollision
3422 $ cat <<EOF >> .hg/hgrc
3423 > [experimental]
3424 > evolution = createmarkers
3425 > EOF
3426 $ echo 0 > a
3427 $ hg ci -qAm 0
3428 $ for i in 17 129 248 242 480 580 617 1057 2857 4025; do
3429 > hg up -q 0
3430 > echo $i > a
3431 > hg ci -qm $i
3432 > done
3433 $ hg up -q null
3434 $ hg log -r0: -T '{rev}:{node}\n'
3435 0:b4e73ffab476aa0ee32ed81ca51e07169844bc6a
3436 1:11424df6dc1dd4ea255eae2b58eaca7831973bbc
3437 2:11407b3f1b9c3e76a79c1ec5373924df096f0499
3438 3:11dd92fe0f39dfdaacdaa5f3997edc533875cfc4
3439 4:10776689e627b465361ad5c296a20a487e153ca4
3440 5:a00be79088084cb3aff086ab799f8790e01a976b
3441 6:a0b0acd79b4498d0052993d35a6a748dd51d13e6
3442 7:a0457b3450b8e1b778f1163b31a435802987fe5d
3443 8:c56256a09cd28e5764f32e8e2810d0f01e2e357a
3444 9:c5623987d205cd6d9d8389bfc40fff9dbb670b48
3445 10:c562ddd9c94164376c20b86b0b4991636a3bf84f
3446 $ hg debugobsolete a00be79088084cb3aff086ab799f8790e01a976b
3447 $ hg debugobsolete c5623987d205cd6d9d8389bfc40fff9dbb670b48
3448 $ hg debugobsolete c562ddd9c94164376c20b86b0b4991636a3bf84f
3449
3450 nodes starting with '11' (we don't have the revision number '11' though)
3451
3452 $ hg log -r 1:3 -T '{rev}:{shortest(node, 0)}\n'
3453 1:1142
3454 2:1140
3455 3:11d
3456
3457 '5:a00' is hidden, but still we have two nodes starting with 'a0'
3458
3459 $ hg log -r 6:7 -T '{rev}:{shortest(node, 0)}\n'
3460 6:a0b
3461 7:a04
3462
3463 node '10' conflicts with the revision number '10' even if it is hidden
3464 (we could exclude hidden revision numbers, but currently we don't)
3465
3466 $ hg log -r 4 -T '{rev}:{shortest(node, 0)}\n'
3467 4:107
3468 $ hg log -r 4 -T '{rev}:{shortest(node, 0)}\n' --hidden
3469 4:107
3470
3471 node 'c562' should be unique if the other 'c562' nodes are hidden
3472
3473 $ hg log -r 8 -T '{rev}:{node|shortest}\n'
3474 8:c562
3475 $ hg log -r 8:10 -T '{rev}:{node|shortest}\n' --hidden
3476 8:c5625
3477 9:c5623
3478 10:c562d
3479
3480 $ cd ..
3481
3416 Test pad function
3482 Test pad function
3417
3483
3484 $ cd r
3485
3418 $ hg log --template '{pad(rev, 20)} {author|user}\n'
3486 $ hg log --template '{pad(rev, 20)} {author|user}\n'
3419 2 test
3487 2 test
3420 1 {node|short}
3488 1 {node|short}
General Comments 0
You need to be logged in to leave comments. Login now