cmdutil: changed code in getgraphlogrevs not to use getitem
__getitem__ is a method that is not implemented lazily on many of the new
classes and it can be easily replaced with a structure that takes advantage of
the new lazy implementations instead.
revset: changed minrev and maxrev implementations to use ordered sets
Performance Benchmarking:
0) max(tip:0)
1) min(0:tip)
2) min(0::)
b96cb15ec9e0 (2.9.1 release)
0) ! wall 0.005699 comb 0.000000 user 0.000000 sys 0.000000 (best of 450)
1) ! wall 0.005414 comb 0.010000 user 0.010000 sys 0.000000 (best of 493)
2) ! wall 0.025951 comb 0.030000 user 0.030000 sys 0.000000 (best of 107)
05267e6e94dd (public tip at submission time)
0) ! wall 0.015177 comb 0.020000 user 0.020000 sys 0.000000 (best of 175)
1) ! wall 0.014779 comb 0.010000 user 0.010000 sys 0.000000 (best of 189)
2) ! wall 12.345179 comb 12.350000 user 12.350000 sys 0.000000 (best of 3)
Current patches:
0) ! wall 0.001911 comb 0.000000 user 0.000000 sys 0.000000 (best of 1357)
1) ! wall 0.001943 comb 0.010000 user 0.010000 sys 0.000000 (best of 1406)
2) ! wall 0.000405 comb 0.000000 user 0.000000 sys 0.000000 (best of 6761)
revset: changed addset to extend _orderedsetmixin
Now _addset can use the lazy min and max implementation.
revset: add a default argument for baseset.__init__
We are now able to create empty baseset using `baseset()` as we are able to
create empty list with `list()`.
revset: changed orderedlazyset to also extend _orderedsetmixin
Now orderedlazyset can use the lazy min and max implementation.
revset: changed spanset to extend _orderedsetmixin
Now spanset can use the lazy min and max methods implementation.
revset: added _orderedsetmixin class
This class has utility methods for any ordered class to get the min and the
max values.
revset: added min and max methods to baseset and lazyset
This classes have no particular order so they rely on python min() and max()
implementation. This methods will be implemented in every smartset class in
future patches. For other classes there are lazy implementations that can be
made for this methods.