# Revsets to pass to `jj bench revsets` on the Git # Single tagsv1.0.0v2.40.0# Old history::v1.0.0..v1.0.0# More history::v2.40.0..v2.40.0# Only recent historyv2.39.0..v2.40.0::v2.40.0 ~ ::v2.39.0v2.39.0::v2.40.0# Tags and branchestags()branches()# Local changes(tags() | remote_branches())..# Intersection of range with a small subsettags() & ::v2.40.0v2.39.0 & ::v2.40.0# Author and committerauthor(peff)committer(gitster)# Intersection and union of large subsetsauthor(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 subsetsroots(tags())heads(tags())# Roots and heads of large subsetsroots(author(peff))heads(author(peff))# Roots and heads of rangeroots(::v2.40.0)heads(::v2.40.0)# Parents and ancestors of old commitv1.0.0-v1.0.0---::v1.0.0---# Children and descendants of old commitv1.0.0+v1.0.0+++v1.0.0+++::# Parents and ancestors of recent commitv2.40.0-v2.40.0---::v2.40.0---# Children and descendants of recent commitv2.40.0+v2.40.0+++v2.40.0+++::# Parents and ancestors of small subsettags()-tags()---::tags()---# Children and descendants of small subsettags()+tags()+++tags()+++::# Filter that doesn't read commit objectmerges()~merges()# These are unbearably slow, so only filter within small setfile(Makefile) & v1.0.0..v1.2.0empty() & v1.0.0..v1.2.0conflict() & v1.0.0..v1.2.0
# 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
# Tags and branches
tags()
branches()
# Local changes
(tags() | remote_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---
# Children and descendants 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---
# Children and descendants of recent commit
v2.40.0+
v2.40.0+++
v2.40.0+++::
# Parents and ancestors of small subset
tags()-
tags()---
::tags()---
# Children and descendants of small subset
tags()+
tags()+++
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