ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/testing/bench-revsets-git.txt
Yuya Nishihara 38e7eff09f index: merge overlapped generation ranges to be enqueued
Before, the number of the generations to track would increase at each merge
point. This was really bad for queries like ':@--' in merge-heavy history,
but I didn't notice the problem because ancestors query is lazy and
the default log template is slow. Since I'm going to reuse RevWalk for
'roots++:' queries, which can't be lazy, I need to fix this problem first.

As we don't have a revset expression to specify exact generation range,
gen.end is initialized to either 1 or close to u32::MAX. So, this change
means long-lived generation ranges will eventually be merged into one.
2023-04-27 08:18:47 +09:00

62 lines
1.3 KiB
Text

# Revsets to pass to `jj bench revsets` on the Git
# Single tags
v1.0.0
v2.40.0
# Old history
:v1.0.0
..v1.0.0
# More history
:v2.40.0
..v2.40.0
# Only recent history
v2.39.0..v2.40.0
:v2.40.0 ~ :v2.39.0
v2.39.0:v2.40.0
v2.40.0+
# Tags and branches
tags()
branches()
# Intersection of range with a small subset
tags() & :v2.40.0
v2.39.0 & :v2.40.0
# Author and committer
author(peff)
committer(gitster)
# Intersection and union of large subsets
author(peff) & committer(gitster)
author(peff) | committer(gitster)
# Intersection of filter with a small subset
:v1.0.0 & (author(peff) & committer(gitster))
:v1.0.0 & (author(peff) | committer(gitster))
# Roots and heads of small subsets
roots(tags())
heads(tags())
# Roots and heads of large subsets
roots(author(peff))
heads(author(peff))
# Roots and heads of range
roots(:v2.40.0)
heads(:v2.40.0)
# Parents and ancestors of old commit
v1.0.0-
v1.0.0---
:v1.0.0---
# Parents and ancestors of recent commit
v2.40.0-
v2.40.0---
:v2.40.0---
# Parents and ancestors of small subset
tags()-
tags()---
:tags()---
# Children of small subset
tags()+
# Filter that doesn't read commit object
merges()
~merges()
# These are unbearably slow, so only filter within small set
file(Makefile) & v1.0.0..v1.2.0
empty() & v1.0.0..v1.2.0
conflict() & v1.0.0..v1.2.0