Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:51:16 -0700] rev 22875
revset-_list: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:50:20 -0700] rev 22874
revset-roots: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Oct 2014 13:31:00 -0700] rev 22873
histedit: stabilise the order nodes that are stripped
The `nodes` object is a set. We sort it to get stable order. This is going to
prevent revsets from getting confused when removing a `.set()` call in `roots`.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:49:17 -0700] rev 22872
revset-origin: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:48:56 -0700] rev 22871
revset-last: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:48:24 -0700] rev 22870
revset-limit: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:47:46 -0700] rev 22869
revset-destination: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:47:24 -0700] rev 22868
revset-children: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:47:00 -0700] rev 22867
revset-branch: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:45:53 -0700] rev 22866
revset-rangeset: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 02:45:43 -0700] rev 22865
revset-only: remove usage of `set()`
All smartset classes have fast lookup, so this function will be removed soon.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Oct 2014 22:57:52 -0700] rev 22864
revset: cache most conditions used in `filter`
Except when stated otherwise, the condition used in `smartset.filter` will be
cached. A new argument has been introduced to disable that behavior. We use it
for filters created from `and` and `sub` operations.
This gives massive performance boosts for revsets with expensive conditions.
revset: branch(stable) or branch(default)
before) wall 4.329070 comb 4.320000 user 4.310000 sys 0.010000 (best of 3)
after) wall 2.356451 comb 2.360000 user 2.330000 sys 0.030000 (best of 4)
revset: author(mpm) or author(lmoscovicz)
before) wall 4.434719 comb 4.440000 user 4.440000 sys 0.000000 (best of 3)
after) wall 2.321720 comb 2.320000 user 2.320000 sys 0.000000 (best of 4)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Oct 2014 04:12:20 -0700] rev 22863
baseset: empty or one-element sets are ascending and descending
The empty set is full of interesting properties. In the ordering case, the one
element set is too.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 07 Oct 2014 01:33:05 -0700] rev 22862
filteredset: drop explicit order management
Now that all low-level smartset classes have proper ordering and fast iteration
management, we can just rely on the subset in filteredset.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Oct 2014 04:24:51 -0700] rev 22861
revset: restore order of `or` operation as in Mercurial 2.9
Lazy revset broke the ordering of the `or` revset. We now stop assuming that
two ascending revset are combine into an ascending one.
Behavior in 3.0:
3:4 or 2:5 == [2, 3, 4, 5]
Behavior in 2.9:
3:4 or 2:5 == [3, 4, 2, 5]
We are adding a test for it.
For unclear reason, the performance `or` revset with expensive filter are
getting even worse than they used to be. This is probably caused by extra
uncached containment check or iteration.
revset #9: author(lmoscovicz) or author(mpm)
before) wall 3.487583 comb 3.490000 user 3.490000 sys 0.000000 (best of 3)
after) wall 4.481486 comb 4.480000 user 4.470000 sys 0.010000 (best of 3)
revset #10: author(mpm) or author(lmoscovicz)
before) wall 3.164839 comb 3.170000 user 3.160000 sys 0.010000 (best of 3)
after) wall 4.574965 comb 4.570000 user 4.570000 sys 0.000000 (best of 3)