sapling/eden/mononoke/Cargo.toml

424 lines
16 KiB
TOML
Raw Normal View History

[package]
name = "eden_mononoke"
version = "0.1.0"
authors = ["Facebook"]
edition = "2018"
license = "GPLv2+"
[[bin]]
name = "admin"
path = "cmds/admin/main.rs"
[[bin]]
name = "aliasverify"
path = "cmds/aliasverify.rs"
[[bin]]
name = "backfill_derived_data"
path = "cmds/backfill_derived_data/main.rs"
[[bin]]
name = "backfill_mapping"
path = "cmds/backfill_mapping.rs"
[[bin]]
name = "benchmark_filestore"
path = "cmds/benchmark_filestore.rs"
autocargo v2: rollout and replace v1 in all use-cases Summary: This diff rollouts V2 of autocargo in an atomic way so there are quite a few things done here. Arc lint support: V1 used to be part of the default fbsource `arc lint` engine, but since V2 calls buck it must live in a separate lint engine. So this diff: - Adds running `autocargo` as part of `arc lint-rust` Mergedriver update: - Mergedriver used in resolving conflicts on commits is now pointing to V2 - It handles files in `public_autocargo/` directories in addition to the ones containig generation preamble Including regeneration results of running `common/rust/cargo_from_buck/bin/autocargo`. All the differences are accounted for: - Some sections and attributes are removed as they can be autodiscovered by Cargo (like `lib.path = "src/lib.rs"` or empty [lib] section) - "readme" attribute is properly defined as relative to Cargo.toml location rather than as hardcoded string - "unittest = false" on a Buck rule propagates as "test = false; doctest = false" to Cargo - "rusqlite" is not special-cased anymore, so the "budled" feature will have to be enabled using custom configuration if required by the project (for rust-shed in order to not break windows builds a default feature section was added) - Files generated from thrift_library rules that do not support "rust" language are removed - Custom .bzl rules that create rust artifacts (like `rust_python_extension`) are no longer ignored Others: - Changed `bin/cargo-autocargo` to be a wrapper for calling V2 via `cargo autocargo` - Updated following files to use V2: - `common/rust/tools/reindeer/version-bump` - `remote_execution/rust/setup.sh` - Removed few files from V1 that would otherwise interfere with V2 automatic regeneration/linting/testing Reviewed By: zertosh Differential Revision: D26728789 fbshipit-source-id: d1454e7ce658a2d3194704f8d77b12d688ec3e64
2021-03-02 17:41:22 +03:00
test = false
[[bin]]
name = "benchmark_storage_config"
path = "cmds/benchmark_storage_config/main.rs"
[[bin]]
name = "blobimport"
path = "cmds/blobimport.rs"
[[bin]]
name = "blobstore_healer"
path = "cmds/blobstore_healer/main.rs"
[[bin]]
name = "bonsai_verify"
path = "cmds/bonsai_verify/main.rs"
autocargo v2: rollout and replace v1 in all use-cases Summary: This diff rollouts V2 of autocargo in an atomic way so there are quite a few things done here. Arc lint support: V1 used to be part of the default fbsource `arc lint` engine, but since V2 calls buck it must live in a separate lint engine. So this diff: - Adds running `autocargo` as part of `arc lint-rust` Mergedriver update: - Mergedriver used in resolving conflicts on commits is now pointing to V2 - It handles files in `public_autocargo/` directories in addition to the ones containig generation preamble Including regeneration results of running `common/rust/cargo_from_buck/bin/autocargo`. All the differences are accounted for: - Some sections and attributes are removed as they can be autodiscovered by Cargo (like `lib.path = "src/lib.rs"` or empty [lib] section) - "readme" attribute is properly defined as relative to Cargo.toml location rather than as hardcoded string - "unittest = false" on a Buck rule propagates as "test = false; doctest = false" to Cargo - "rusqlite" is not special-cased anymore, so the "budled" feature will have to be enabled using custom configuration if required by the project (for rust-shed in order to not break windows builds a default feature section was added) - Files generated from thrift_library rules that do not support "rust" language are removed - Custom .bzl rules that create rust artifacts (like `rust_python_extension`) are no longer ignored Others: - Changed `bin/cargo-autocargo` to be a wrapper for calling V2 via `cargo autocargo` - Updated following files to use V2: - `common/rust/tools/reindeer/version-bump` - `remote_execution/rust/setup.sh` - Removed few files from V1 that would otherwise interfere with V2 automatic regeneration/linting/testing Reviewed By: zertosh Differential Revision: D26728789 fbshipit-source-id: d1454e7ce658a2d3194704f8d77b12d688ec3e64
2021-03-02 17:41:22 +03:00
test = false
[[bin]]
name = "configlint"
path = "cmds/configlint.rs"
[[bin]]
name = "dumprev"
path = "cmds/dumprev.rs"
autocargo v2: rollout and replace v1 in all use-cases Summary: This diff rollouts V2 of autocargo in an atomic way so there are quite a few things done here. Arc lint support: V1 used to be part of the default fbsource `arc lint` engine, but since V2 calls buck it must live in a separate lint engine. So this diff: - Adds running `autocargo` as part of `arc lint-rust` Mergedriver update: - Mergedriver used in resolving conflicts on commits is now pointing to V2 - It handles files in `public_autocargo/` directories in addition to the ones containig generation preamble Including regeneration results of running `common/rust/cargo_from_buck/bin/autocargo`. All the differences are accounted for: - Some sections and attributes are removed as they can be autodiscovered by Cargo (like `lib.path = "src/lib.rs"` or empty [lib] section) - "readme" attribute is properly defined as relative to Cargo.toml location rather than as hardcoded string - "unittest = false" on a Buck rule propagates as "test = false; doctest = false" to Cargo - "rusqlite" is not special-cased anymore, so the "budled" feature will have to be enabled using custom configuration if required by the project (for rust-shed in order to not break windows builds a default feature section was added) - Files generated from thrift_library rules that do not support "rust" language are removed - Custom .bzl rules that create rust artifacts (like `rust_python_extension`) are no longer ignored Others: - Changed `bin/cargo-autocargo` to be a wrapper for calling V2 via `cargo autocargo` - Updated following files to use V2: - `common/rust/tools/reindeer/version-bump` - `remote_execution/rust/setup.sh` - Removed few files from V1 that would otherwise interfere with V2 automatic regeneration/linting/testing Reviewed By: zertosh Differential Revision: D26728789 fbshipit-source-id: d1454e7ce658a2d3194704f8d77b12d688ec3e64
2021-03-02 17:41:22 +03:00
test = false
[[bin]]
name = "idxdump"
path = "cmds/idxdump.rs"
autocargo v2: rollout and replace v1 in all use-cases Summary: This diff rollouts V2 of autocargo in an atomic way so there are quite a few things done here. Arc lint support: V1 used to be part of the default fbsource `arc lint` engine, but since V2 calls buck it must live in a separate lint engine. So this diff: - Adds running `autocargo` as part of `arc lint-rust` Mergedriver update: - Mergedriver used in resolving conflicts on commits is now pointing to V2 - It handles files in `public_autocargo/` directories in addition to the ones containig generation preamble Including regeneration results of running `common/rust/cargo_from_buck/bin/autocargo`. All the differences are accounted for: - Some sections and attributes are removed as they can be autodiscovered by Cargo (like `lib.path = "src/lib.rs"` or empty [lib] section) - "readme" attribute is properly defined as relative to Cargo.toml location rather than as hardcoded string - "unittest = false" on a Buck rule propagates as "test = false; doctest = false" to Cargo - "rusqlite" is not special-cased anymore, so the "budled" feature will have to be enabled using custom configuration if required by the project (for rust-shed in order to not break windows builds a default feature section was added) - Files generated from thrift_library rules that do not support "rust" language are removed - Custom .bzl rules that create rust artifacts (like `rust_python_extension`) are no longer ignored Others: - Changed `bin/cargo-autocargo` to be a wrapper for calling V2 via `cargo autocargo` - Updated following files to use V2: - `common/rust/tools/reindeer/version-bump` - `remote_execution/rust/setup.sh` - Removed few files from V1 that would otherwise interfere with V2 automatic regeneration/linting/testing Reviewed By: zertosh Differential Revision: D26728789 fbshipit-source-id: d1454e7ce658a2d3194704f8d77b12d688ec3e64
2021-03-02 17:41:22 +03:00
test = false
[[bin]]
name = "lfs_import"
path = "cmds/lfs_import.rs"
autocargo v2: rollout and replace v1 in all use-cases Summary: This diff rollouts V2 of autocargo in an atomic way so there are quite a few things done here. Arc lint support: V1 used to be part of the default fbsource `arc lint` engine, but since V2 calls buck it must live in a separate lint engine. So this diff: - Adds running `autocargo` as part of `arc lint-rust` Mergedriver update: - Mergedriver used in resolving conflicts on commits is now pointing to V2 - It handles files in `public_autocargo/` directories in addition to the ones containig generation preamble Including regeneration results of running `common/rust/cargo_from_buck/bin/autocargo`. All the differences are accounted for: - Some sections and attributes are removed as they can be autodiscovered by Cargo (like `lib.path = "src/lib.rs"` or empty [lib] section) - "readme" attribute is properly defined as relative to Cargo.toml location rather than as hardcoded string - "unittest = false" on a Buck rule propagates as "test = false; doctest = false" to Cargo - "rusqlite" is not special-cased anymore, so the "budled" feature will have to be enabled using custom configuration if required by the project (for rust-shed in order to not break windows builds a default feature section was added) - Files generated from thrift_library rules that do not support "rust" language are removed - Custom .bzl rules that create rust artifacts (like `rust_python_extension`) are no longer ignored Others: - Changed `bin/cargo-autocargo` to be a wrapper for calling V2 via `cargo autocargo` - Updated following files to use V2: - `common/rust/tools/reindeer/version-bump` - `remote_execution/rust/setup.sh` - Removed few files from V1 that would otherwise interfere with V2 automatic regeneration/linting/testing Reviewed By: zertosh Differential Revision: D26728789 fbshipit-source-id: d1454e7ce658a2d3194704f8d77b12d688ec3e64
2021-03-02 17:41:22 +03:00
test = false
[[bin]]
name = "manual_scrub"
path = "cmds/manual_scrub/main.rs"
[[bin]]
name = "rechunker"
path = "cmds/rechunker.rs"
[[bin]]
name = "revlogrepo"
path = "cmds/revlogrepo.rs"
[[bin]]
name = "segmented_changelog_seeder"
path = "cmds/segmented_changelog_seeder.rs"
[[bin]]
name = "segmented_changelog_tailer"
path = "cmds/segmented_changelog_tailer.rs"
[[bin]]
name = "sqlblob_gc"
path = "cmds/sqlblob_gc/main.rs"
[[bin]]
name = "statistics_collector"
path = "cmds/statistics_collector.rs"
[[bin]]
name = "streaming_clone_warmup"
path = "cmds/streaming_clone_warmup/main.rs"
[[bin]]
name = "upload_globalrevs"
path = "cmds/upload_globalrevs.rs"
[dependencies]
anyhow = "1.0"
ascii = "1.0"
async-trait = "0.1.45"
backsyncer = { version = "0.1.0", path = "commit_rewriting/backsyncer" }
blame = { version = "0.1.0", path = "derived_data/blame" }
blobimport_lib = { version = "0.1.0", path = "blobimport_lib" }
blobrepo = { version = "0.1.0", path = "blobrepo" }
blobrepo_factory = { version = "0.1.0", path = "blobrepo/factory" }
blobrepo_hg = { version = "0.1.0", path = "blobrepo/blobrepo_hg" }
blobrepo_override = { version = "0.1.0", path = "blobrepo/override" }
blobrepo_utils = { version = "0.1.0", path = "blobrepo_utils" }
blobstore = { version = "0.1.0", path = "blobstore" }
blobstore_factory = { version = "0.1.0", path = "blobstore/factory" }
blobstore_sync_queue = { version = "0.1.0", path = "blobstore_sync_queue" }
bonsai_globalrev_mapping = { version = "0.1.0", path = "bonsai_globalrev_mapping" }
bookmark_renaming = { version = "0.1.0", path = "commit_rewriting/bookmark_renaming" }
bookmarks = { version = "0.1.0", path = "bookmarks" }
bookmarks_movement = { version = "0.1.0", path = "bookmarks/bookmarks_movement" }
borrowed = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
bounded_traversal = { version = "0.1.0", path = "common/bounded_traversal" }
bulkops = { version = "0.1.0", path = "bulkops" }
bytes = { version = "0.5", features = ["serde"] }
bytesize = "1.0"
cacheblob = { version = "0.1.0", path = "blobstore/cacheblob" }
cached_config = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
cachelib = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
changeset_fetcher = { version = "0.1.0", path = "blobrepo/changeset_fetcher" }
changesets = { version = "0.1.0", path = "changesets" }
chrono = { version = "0.4", features = ["serde"] }
clap = "2.33"
cloned = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
cmdlib = { version = "0.1.0", path = "cmdlib" }
context = { version = "0.1.0", path = "server/context" }
copy_utils = { version = "0.1.0", path = "common/copy_utils" }
criterion = "=0.3.1"
cross_repo_sync = { version = "0.1.0", path = "commit_rewriting/cross_repo_sync" }
dbbookmarks = { version = "0.1.0", path = "bookmarks/dbbookmarks" }
deleted_files_manifest = { version = "0.1.0", path = "derived_data/deleted_files_manifest" }
derived_data = { version = "0.1.0", path = "derived_data" }
derived_data_filenodes = { version = "0.1.0", path = "derived_data/filenodes" }
derived_data_utils = { version = "0.1.0", path = "derived_data/utils" }
failure_ext = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
fastlog = { version = "0.1.0", path = "derived_data/fastlog" }
fbinit = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
fbthrift = { version = "0.0.1+unstable", git = "https://github.com/facebook/fbthrift.git", branch = "master" }
filenodes = { version = "0.1.0", path = "filenodes" }
filestore = { version = "0.1.0", path = "filestore" }
fsnodes = { version = "0.1.0", path = "derived_data/fsnodes" }
futures = { version = "0.3.13", features = ["async-await", "compat"] }
futures-old = { package = "futures", version = "0.1.31" }
futures-util = "0.3.7"
futures_03_ext = { package = "futures_ext", version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
futures_ext = { package = "futures_01_ext", version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
futures_stats = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
git_types = { version = "0.1.0", path = "git/git_types" }
humantime = "1.3"
itertools = "0.8"
lazy_static = "1.0"
lfs_import_lib = { version = "0.1.0", path = "lfs_import_lib" }
live_commit_sync_config = { version = "0.1.0", path = "commit_rewriting/live_commit_sync_config" }
lock_ext = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
manifest = { version = "0.1.0", path = "manifest" }
maplit = "1.0"
memblob = { version = "0.1.0", path = "blobstore/memblob" }
mercurial_bundle_replay_data = { version = "0.1.0", path = "mercurial/bundle_replay_data" }
mercurial_derived_data = { version = "0.1.0", path = "derived_data/mercurial_derived_data" }
mercurial_revlog = { version = "0.1.0", path = "mercurial/revlog" }
mercurial_types = { version = "0.1.0", path = "mercurial/types" }
metaconfig_types = { version = "0.1.0", path = "metaconfig/types" }
mononoke_hg_sync_job_helper_lib = { version = "0.1.0", path = "mononoke_hg_sync_job" }
mononoke_types = { version = "0.1.0", path = "mononoke_types" }
mutable_counters = { version = "0.1.0", path = "mutable_counters" }
prefixblob = { version = "0.1.0", path = "blobstore/prefixblob" }
pushrebase = { version = "0.1.0", path = "pushrebase" }
rand = { version = "0.7", features = ["small_rng"] }
redactedblobstore = { version = "0.1.0", path = "blobstore/redactedblobstore" }
regex = "1.4.2"
revset = { version = "0.1.0", path = "revset" }
scuba_ext = { version = "0.1.0", path = "common/scuba_ext" }
segmented_changelog = { version = "0.1.0", path = "segmented_changelog" }
segmented_changelog: update OnDemandUpdateDag to have smaller critical sections Summary: The on demand update code we have is the most basic logic that we could have. The main problem is that it has long and redundant write locks. This change reduces the write lock strictly to the section that has to update the in memory IdDag. Updating the Dag has 3 phases: * loading the data that is required for the update; * updating the IdMap; * updating the IdDag; The Dag can function well for serving requests as long as the commits involved have been built so we want to have easy read access to both the IdMap and the IdDag. The IdMap is a very simple structure and because it's described as an Arc<dyn IdMap> we push the update locking logic to the storage. The IdDag is a complicated structure that we ask to update itself. Those functions take mutable references. Updating the storage of the iddag to hide the complexities of locking is more difficult. We deal with the IdDag directly by wrapping it in a RwLock. The RwLock allows for easy read access which we expect to be the predominant access pattern. Updates to the dag are not completely stable so racing updates can have conflicting results. In case of conflics one of the update processes would have to restart. It's easier to reason about the process if we just allow one "thread" to start an update process. The update process is locked by a sync mutex. The "threads" that fail the race to update are asked to wait until the ongoing update is complete. The waiters will poll on a shared future that tracks the ongoing dag update. After the update is complete the waiters will go back to checking if the data they have is available in the dag. It is possible that the dag is updated in between determining that the an update is needed and acquiring the ongoing_update lock. This is fine because the update building process checks the state of dag before the dag and updates only what is necessary if necessary. Reviewed By: krallin Differential Revision: D26508430 fbshipit-source-id: cd3bceed7e0ffb00aee64433816b5a23c0508d3c
2021-02-23 05:14:45 +03:00
serde = { version = "=1.0.118", features = ["derive", "rc"] }
serde_derive = "1.0"
serde_json = { version = "1.0", features = ["float_roundtrip"] }
sha2 = "0.8"
skeleton_manifest = { version = "0.1.0", path = "derived_data/skeleton_manifest" }
skiplist = { version = "0.1.0", path = "reachabilityindex/skiplist" }
slog = { version = "2.5", features = ["max_level_debug"] }
sorted_vector_map = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
sql_construct = { version = "0.1.0", path = "common/sql_construct" }
sql_ext = { version = "0.1.0", path = "common/rust/sql_ext" }
sqlblob = { version = "0.1.0", path = "blobstore/sqlblob" }
stats = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
streaming_clone = { version = "0.1.0", path = "repo_client/streaming_clone" }
synced_commit_mapping = { version = "0.1.0", path = "commit_rewriting/synced_commit_mapping" }
thiserror = "1.0"
throttledblob = { version = "0.1.0", path = "blobstore/throttledblob" }
time_ext = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
tokio = { version = "0.2.25", features = ["full", "test-util"] }
tokio-util = { version = "0.3", features = ["codec", "udp"] }
tokio_shim = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
toml = "=0.5.7"
unodes = { version = "0.1.0", path = "derived_data/unodes" }
xdiff = { version = "0.1.0", path = "../scm/lib/xdiff" }
[dev-dependencies]
fbinit-tokio-02 = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
fixtures = { version = "0.1.0", path = "tests/fixtures" }
tests_utils = { version = "0.1.0", path = "tests/utils" }
[patch.crates-io]
addr2line = { git = "https://github.com/gimli-rs/addr2line.git", rev = "0b6b6018b5b252a18e628fba03885f7d21844b3c" }
bytecount = { git = "https://github.com/llogiq/bytecount", rev = "469eaf8395c99397cd64d059737a9054aa014088" }
chashmap = { git = "https://gitlab.redox-os.org/ahornby/chashmap", rev = "901ace2ca3cdbc2095adb1af111d211e254e2aae" }
const-random = { git = "https://github.com/fbsource/const-random", rev = "374c5b46427fe2ffbf6acbd9c1687e0f1a809f95" }
enumset = { git = "https://github.com/danobi/enumset", rev = "4c01c583c27a725948fededbfb3461c572a669a4" }
gotham = { git = "https://github.com/krallin/gotham.git", rev = "6c1612c7189893f31c6c3fa2dda11c0b6d83e1ac" }
gotham-02 = { package = "gotham", git = "https://github.com/krallin/gotham-02.git", rev = "1eb3b976c31e7e4334b188f3abfa5cc2e5cae033" }
gotham_derive = { git = "https://github.com/krallin/gotham.git", rev = "6c1612c7189893f31c6c3fa2dda11c0b6d83e1ac" }
gotham_derive-02 = { package = "gotham_derive", git = "https://github.com/krallin/gotham-02.git", rev = "1eb3b976c31e7e4334b188f3abfa5cc2e5cae033" }
hyper = { package = "hyper", git = "https://github.com/krallin/hyper.git", rev = "8850630d2fbb637cfdeaea802526e2d968ec0b71" }
hyper-02 = { package = "hyper", version = "0.13.10", git = "https://github.com/krallin/hyper-02.git", rev = "9c9453c5ae3e92de4ba30edd81bb45371b8fa8d6" }
lru-disk-cache = { git = "https://github.com/mozilla/sccache", rev = "033ebaae69beeb0ac04e8c35d6ff1103487bd9a3" }
openssl = { git = "https://github.com/sfackler/rust-openssl", rev = "68fc8ba890d77986b06ca5ce29d1089285fbbcf9" }
openssl-sys = { git = "https://github.com/sfackler/rust-openssl", rev = "68fc8ba890d77986b06ca5ce29d1089285fbbcf9" }
prost = { git = "https://github.com/gabrielrussoc/prost", branch = "protoc-runtime" }
prost-build = { git = "https://github.com/gabrielrussoc/prost", branch = "protoc-runtime" }
prost-derive = { git = "https://github.com/gabrielrussoc/prost", branch = "protoc-runtime" }
prost-types = { git = "https://github.com/gabrielrussoc/prost", branch = "protoc-runtime" }
r2d2_sqlite = { git = "https://github.com/jsgf/r2d2-sqlite.git", rev = "6d77a828ca0a3c507a3f58561532a1b6c66c7918" }
rustfilt = { git = "https://github.com/jsgf/rustfilt.git", rev = "8141fa7f1caee562ee8daffb2ddeca3d1f0d36e5" }
smallvec = { git = "https://github.com/ahornby/rust-smallvec.git", rev = "708e6f09ced4ed211a7c63f53bce7dfe2bbda478" }
tokio-02 = { package = "tokio", version = "0.2.25", git = "https://github.com/krallin/tokio.git", rev = "818f943db36e32b7c928351c32fe69ac913409f9" }
tokio-compat = { package = "tokio-compat", version = "0.1.6", git = "https://github.com/krallin/tokio-compat.git", rev = "c2330c2a0141353e467cc5861988daa2eae7cb54" }
tokio-core = { git = "https://github.com/bolinfest/tokio-core", rev = "5f37aa3c627d56ee49154bc851d6930f5ab4398f" }
toml = { git = "https://github.com/jsgf/toml-rs", branch = "dotted-table-0.5.7" }
[workspace]
members = [
".",
"alpn",
"benchmarks/derived_data",
"benchmarks/simulated_repo",
"blobimport_lib",
"blobimport_lib/consts",
"blobrepo",
"blobrepo/blobrepo_hg",
"blobrepo/blobsync",
"blobrepo/changeset_fetcher",
"blobrepo/common",
"blobrepo/errors",
"blobrepo/factory",
"blobrepo/override",
"blobrepo/repo_blobstore",
"blobrepo_utils",
"blobstore",
"blobstore/blobstore_stats",
"blobstore/cacheblob",
"blobstore/chaosblob",
"blobstore/delayblob",
"blobstore/factory",
"blobstore/fileblob",
"blobstore/if",
"blobstore/logblob",
"blobstore/memblob",
"blobstore/multiplexedblob",
"blobstore/packblob",
"blobstore/packblob/if",
"blobstore/prefixblob",
"blobstore/readonlyblob",
"blobstore/redactedblobstore",
"blobstore/samplingblob",
"blobstore/sqlblob",
"blobstore/throttledblob",
"blobstore/virtually_sharded_blobstore",
"blobstore_sync_queue",
"bonsai_git_mapping",
"bonsai_git_mapping/git_mapping_pushrebase_hook",
"bonsai_globalrev_mapping",
"bonsai_globalrev_mapping/globalrev_pushrebase_hook",
"bonsai_globalrev_mapping/if",
"bonsai_hg_mapping",
"bonsai_hg_mapping/if",
"bonsai_svnrev_mapping",
"bonsai_svnrev_mapping/if",
"bookmarks",
"bookmarks/bookmarks_movement",
"bookmarks/bookmarks_types",
"bookmarks/dbbookmarks",
"bookmarks/warm_bookmarks_cache",
"bulkops",
"bulkops/bench",
"cache_warmup",
"changesets",
"changesets/if",
"cmdlib",
"cmdlib/x_repo",
"commit_rewriting/backsyncer",
"commit_rewriting/bookmark_renaming",
"commit_rewriting/bookmarks_validator",
"commit_rewriting/commit_validator",
"commit_rewriting/cross_repo_sync",
"commit_rewriting/cross_repo_sync/test_utils",
"commit_rewriting/live_commit_sync_config",
"commit_rewriting/megarepo",
"commit_rewriting/mononoke_x_repo_sync_job",
"commit_rewriting/movers",
"commit_rewriting/synced_commit_mapping",
"common/allocation_tracing",
"common/async_limiter",
"common/async_limiter/examples/tokio_v2",
"common/bounded_traversal",
"common/copy_utils",
"common/dedupmap",
"common/futures_watchdog",
"common/iterhelpers",
"common/rust/caching_ext",
"common/rust/slog_ext",
"common/rust/sql_ext",
"common/scribe_ext",
"common/scuba_ext",
"common/sql_construct",
"common/topo_sort",
"common/type_map",
"common/uniqueheap",
"derived_data",
"derived_data/blame",
"derived_data/changeset_info",
"derived_data/changeset_info/if",
"derived_data/deleted_files_manifest",
"derived_data/fastlog",
"derived_data/filenodes",
"derived_data/fsnodes",
"derived_data/mercurial_derived_data",
"derived_data/skeleton_manifest",
"derived_data/test_utils",
"derived_data/unodes",
"derived_data/utils",
"edenapi_server",
"edenapi_service",
"fastreplay",
"filenodes",
"filenodes/if",
"filestore",
"git/git-pool",
"git/git_types",
"git/git_types/if",
"git/gitimport",
"git/import_tools",
"gotham_ext",
"hgcli",
"hgproto",
"hook_tailer",
"hooks",
"hooks/content-stores",
"hooks/hook_manager_factory",
"lfs_import_lib",
"lfs_protocol",
"lfs_server",
"load_limiter",
"manifest",
"mercurial/bundle_replay_data",
"mercurial/bundles",
"mercurial/mutation",
"mercurial/revlog",
"mercurial/types",
"mercurial/types/if",
"mercurial/types/mocks",
"metaconfig/parser",
"metaconfig/types",
"microwave",
"microwave/builder",
"microwave/if",
"mononoke_api",
"mononoke_api_hg",
"mononoke_hg_sync_job",
"mononoke_types",
"mononoke_types/if",
"mononoke_types/mocks",
"mutable_counters",
"newfilenodes",
"observability",
"permission_checker",
"phases",
"pushrebase",
"reachabilityindex",
"reachabilityindex/common",
"reachabilityindex/if",
"reachabilityindex/skiplist",
"reachabilityindex/test-helpers",
"regenerate_hg_filenodes",
"repo_client",
"repo_client/getbundle_response",
"repo_client/mononoke_repo",
"repo_client/obsolete",
"repo_client/remotefilelog",
"repo_client/repo_read_write_status",
"repo_client/reverse_filler_queue",
"repo_client/scribe_commit_queue",
"repo_client/streaming_clone",
"repo_client/unbundle",
"repo_client/wirepack",
"repo_import",
"revset",
"revset/revset-test-helper",
"segmented_changelog",
"segmented_changelog/bench/concurrent_idmap",
"server",
"server/context",
"server/monitoring",
"server/repo_listener",
"server/session_id",
"sshrelay",
"streaming_clone",
"tests/fixtures",
"tests/utils",
"tests/write_stub_log_entry",
"time_window_counter",
"tunables",
"tunables/tunables-derive",
"unbundle_replay",
"walker",
]