##// END OF EJS Templates
revset: make descendants() lazier...
revset: make descendants() lazier Previously descendants() would force the provided subset to become a set. In the case of revsets like '(%ld::) - (%ld)' (as used by histedit) this would force the '- (%ld)' set to be evaluated, which produced a set containing every commit in the repo (except %ld). This takes 0.6s on large repos. This changes descendants to trust the subset to implement __contains__ efficiently, which improves the above revset to 0.16s. Shaving 0.4 seconds off of histedit. revset #27: (20000::) - (20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.023640 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.019589 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) This commit removes the final revset related perf hotspot from histedit. Combined with the previous two patches, they shave a little over 3 seconds off histedit on large repos.

File last commit:

r12156:4c94b6d0 default
r22449:da05fe01 default
Show More
test-backwards-remove.t
16 lines | 280 B | text/troff | Tads3Lexer
/ tests / test-backwards-remove.t
$ hg init
$ echo This is file a1 > a
$ hg add a
$ hg commit -m "commit #0"
$ ls
a
$ echo This is file b1 > b
$ hg add b
$ hg commit -m "commit #1"
$ hg co 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
B should disappear
$ ls
a