Skip to content
Snippets Groups Projects
Commit cfa50bfe authored by Raphaël Gomès's avatar Raphaël Gomès
Browse files

hg: add a dirstate campaign

parent 1ed18374
No related branches found
No related tags found
No related merge requests found
// This is far from perfect, but writing it already giving me many improvement
// idea, so that step in the right direction.
amends "campaign.pkl"
// should actually make use of `mercurial.repo.format` value, but keeping things for now.
local all_repos: Listing<String>(isDistinct) = new {
"mercurial-devel-2024-03-22-zstd-sparse-revlog"
"mercurial-devel-2024-03-22-ds2-pnm"
"pypy-2018-08-01-zstd-sparse-revlog"
"pypy-2018-08-01-ds2-pnm"
"tryton-public-2024-03-22-zstd-sparse-revlog"
"tryton-public-2024-03-22-ds2-pnm"
// one very large repository with many files
"mozilla-try-2023-03-22-zstd-sparse-revlog"
"mozilla-try-2023-03-22-ds2-pnm"
// one very large repository with many files
"mozilla-unified-2024-03-22-zstd-sparse-revlog"
"mozilla-unified-2024-03-22-ds2-pnm"
}
local any_data: Listing<DataEnvFilter> = new {
for (name in all_repos.toList().filter((n) -> !n.contains("-ds2-"))) {
new {
key = "name"
value = "re:^\(name)$"
}
}
}
local rust_only_data: Listing<DataEnvFilter> = new {
for (name in all_repos.toList().filter((n) -> n.contains("-ds2-"))) {
new {
key = "name"
value = "re:^\(name)$"
}
}
}
local base_versions: Listing<VersionSpec> = new {
new {
mercurial_flavor="no-rust"
}
new {
mercurial_flavor="rust"
}
}
local base_tasks: Listing<TaskSpec> = new {
local files_base: TaskSpec = new {
versions = (base_versions) {
new { mercurial_flavor="rhg" }
}
benchmark_variant_specs {
new { key = "rev"; value = "working-copy" }
new { key = "files"; value = "all-root" }
}
}
(files_base) {
benchmark_name_specs {
new { value = "hg.command.files" }
}
}
(files_base) {
benchmark_name_specs {
new { value = "hg.command.cat" }
}
}
new {
versions = base_versions
benchmark_name_specs {
new { value = "hg.command.status" }
}
}
}
local function rust_only(versions: Listing<VersionSpec>): Listing<VersionSpec> = (
versions
.toList()
.filter(
(v) -> (
v.mercurial_flavor == "rust"
|| v.mercurial_flavor == "rhg"
)
).toListing()
)
// use only the rust flavor on the rust repositories
tasks {
for (t in base_tasks) {
for (d in any_data) {
(t) { data_env_specs {d} }
}
for (d in rust_only_data) {
(t) {
versions = rust_only(super.versions)
data_env_specs {d}
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment