##// END OF EJS Templates
revset: improve _descendants performance...
revset: improve _descendants performance Previously revset._descendants would iterate over the entire subset (which is often the entire repo) and test if each rev was in the descendants list. This is really slow on large repos (3+ seconds). Now we iterate over the descendants and test if they're in the subset. This affects advancing and retracting the phase boundary (3.5 seconds down to 0.8 seconds, which is even faster than it was in 2.9). Also affects commands that move the phase boundary (commit and rebase, presumably). The new revsetbenchmark indicates an improvement from 0.2 to 0.12 seconds. So future revset changes should be able to notice regressions. I removed a bad test. It was recently added and tested '1:: and reverse(all())', which has an amibiguous output direction. Previously it printed in reverse order, because we iterated over the subset (the reverse part). Now it prints in normal order because we iterate over the 1:: . Since the revset itself doesn't imply an order, I removed the test.

File last commit:

r20894:04e1596d default
r20894:04e1596d default
Show More
revsetbenchmarks.txt
16 lines | 217 B | text/plain | TextLexer
/ contrib / revsetbenchmarks.txt
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 all()
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 draft()
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 ::tip
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 draft() and ::tip
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 0::tip
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 roots(0::tip)
author(lmoscovicz)
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 author(mpm)
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 author(lmoscovicz) or author(mpm)
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 tip:0
Lucas Moscovicz
revset: changed minrev and maxrev implementations to use ordered sets...
r20754 max(tip:0)
min(0:tip)
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 0::
Lucas Moscovicz
revset: changed minrev and maxrev implementations to use ordered sets...
r20754 min(0::)
Durham Goode
revset: improve _descendants performance...
r20894 roots((tip~100::) - (tip~100::tip))
Gregory Szorc
revsetbenchmark: add entry for ::rev::...
r20861 ::p1(p1(tip))::