comparison tests/test-revset.t @ 33003:f63d111258da

revset: add startdepth limit to ancestors() as internal option This is necessary to implement the set{gen} (set subscript) operator. For example, set{-n} will be translated to ancestors(set, depth=n, startdepth=n). https://www.mercurial-scm.org/wiki/RevsetOperatorPlan#ideas_from_mpm The UI is undecided and I doubt if the startdepth option would be actually useful, so the option is hidden for now. 'depth' could be extended to take min:max range, in which case, integer depth should select a single generation. ancestors(set, depth=:y) # scan up to y-th generation ancestors(set, depth=x:) # skip until (x-1)-th generation ancestors(set, depth=x) # select only x-th generation Any ideas are welcomed. # reverse(ancestors(tip)) using hg repo 3) 0.075951 4) 0.076175
author Yuya Nishihara <yuya@tcha.org>
date Sun, 18 Jun 2017 00:40:58 +0900
parents 272a44cac57e
children e999b59d6eb1
comparison
equal deleted inserted replaced
33002:272a44cac57e 33003:f63d111258da
901 2 901 2
902 7 902 7
903 6 903 6
904 5 904 5
905 905
906 (walk 2nd and 3rd ancestors)
907
908 $ log 'reverse(ancestors(7, depth=3, startdepth=2))'
909 5
910 4
911 3
912 2
913
914 (interleaved: '4' would be missing if higher-depth ancestors weren't scanned)
915
916 $ log 'reverse(ancestors(7+8, depth=2, startdepth=2))'
917 5
918 4
919 2
920
921 (note that 'ancestors(x, depth=y, startdepth=z)' does not identical to
922 'ancestors(x, depth=y) - ancestors(x, depth=z-1)' because a node may have
923 multiple depths)
924
925 $ log 'reverse(ancestors(7+8, depth=2) - ancestors(7+8, depth=1))'
926 5
927 2
928
906 test bad arguments passed to ancestors() 929 test bad arguments passed to ancestors()
907 930
908 $ log 'ancestors(., depth=-1)' 931 $ log 'ancestors(., depth=-1)'
909 hg: parse error: negative depth 932 hg: parse error: negative depth
910 [255] 933 [255]