##// 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:

r20117:aa9385f9 default
r22449:da05fe01 default
Show More
test-rebase-newancestor.t
55 lines | 688 B | text/troff | Tads3Lexer
/ tests / test-rebase-newancestor.t
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
>
> [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
$ hg init repo
$ cd repo
$ echo A > a
$ echo >> a
$ hg ci -Am A
adding a
$ echo B > a
$ echo >> a
$ hg ci -m B
$ echo C > a
$ echo >> a
$ hg ci -m C
$ hg up -q -C 0
$ echo D >> a
$ hg ci -Am AD
created new head
$ hg tglog
@ 3: 'AD'
|
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
$ hg rebase -s 1 -d 3
merging a
merging a
Mads Kiilerich
tests: remove redundant globs...
r12640 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-backup.hg (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 3: 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
o 2: 'B'
|
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ 1: 'AD'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
o 0: 'A'
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..