sapling/eden/mononoke
Yan Soares Couto 54a885805b Get a RepoBlobstore from a bubble
Summary:
This is basically a refactor.

Before this diff, `bubble.handle(main)` could be used to access things in bubble with fallback. With this diff, `bubble.wrap_repo_blobstore(main)` can be used for the same effect.

The difference is **the type**, which now is `RepoBlobstore` instead of `EphemeralHandle`. Both are blobstores and work the same way for fetching/putting, but on the following diffs I will want to replace some code (e.g. that creates a changeset) to use the ephemeral blobstore for snapshots, and in order to reuse the same code (which expects `RepoBlobstore`), we need the change of types.

This is part of BlobRepo refactoring as well, as what I'm gonna do is replace BlobRepo with a different facet container that has a RepoBlobstore inside.

Reviewed By: markbt

Differential Revision: D30282624

fbshipit-source-id: 4132797104ecd2596e7da91b1daacc1c6fc85934
2021-08-13 04:55:37 -07:00
..
admin Get a RepoBlobstore from a bubble 2021-08-13 04:55:37 -07:00
aliasverify rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
alpn rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
backfill_derived_data rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
benchmark_filestore rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
benchmarks Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
blobimport rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
blobimport_lib rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
blobrepo Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
blobrepo_utils Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
blobstore Get a RepoBlobstore from a bubble 2021-08-13 04:55:37 -07:00
blobstore_healer rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
blobstore_sync_queue rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_git_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_globalrev_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_hg_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_svnrev_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bookmarks rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bulkops rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
cache_warmup rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
changesets rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
cmdlib mononoke: add cli arguments for manifold_request_priority 2021-08-12 08:49:36 -07:00
cmds Get a RepoBlobstore from a bubble 2021-08-13 04:55:37 -07:00
commit_rewriting Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
common Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
derived_data mononoke: small refactoring in fastlog 2021-08-12 15:27:17 -07:00
edenapi_server rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
edenapi_service support streaming for file uploads rather than buffering the whole content 2021-08-12 07:41:30 -07:00
fastreplay rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
filenodes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
filestore On lookup call, return file size metadata 2021-08-05 09:29:45 -07:00
git Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
gotham_ext third-party/rust: disable lzma and xz features for async-compression 2021-08-12 09:30:58 -07:00
hgcli rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
hgproto mononoke: support reading streaming changelog chunks with tag 2021-08-10 05:13:54 -07:00
hook_tailer rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
hooks Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
lfs_import rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
lfs_import_lib rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
lfs_protocol rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
lfs_server rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
manifest rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
megarepo_api Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
mercurial rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
metaconfig rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
microwave rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
mononoke_api Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
mononoke_api_hg Get a RepoBlobstore from a bubble 2021-08-13 04:55:37 -07:00
mononoke_hg_sync_job rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
mononoke_types Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
mutable_counters rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
mutable_renames mononoke: introduce simple mutable renames 2021-08-12 10:41:44 -07:00
newfilenodes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
observability rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
permission_checker rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
phases rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
pushrebase Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
pushrebase_mutation_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
quiet_stream rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
rate_limiting rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
reachabilityindex rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
regenerate_hg_filenodes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
repo_attributes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
repo_client Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
repo_factory Get a RepoBlobstore from a bubble 2021-08-13 04:55:37 -07:00
repo_import rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
revset rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
scs rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
scs_server Use safe cxx signature for metadata creation 2021-08-11 05:23:27 -07:00
segmented_changelog rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
server rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
sshrelay rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
statistics_collector rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
streaming_clone mononoke: use add_opt in streaming_clone 2021-08-11 13:51:57 -07:00
tests Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
time_window_counter rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
tunables mononoke: add tunable for manifold API shared priorities 2021-08-12 08:49:36 -07:00
unbundle_replay rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
upload_globalrevs rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
walker Add more types to FileChange struct 2021-08-12 12:40:48 -07:00
Cargo.toml third-party/rust: disable lzma and xz features for async-compression 2021-08-12 09:30:58 -07:00
README.md mononoke: add README.md and the missing pieces for supporting cargo (#13) 2020-02-13 00:12:36 -08:00

Mononoke

Mononoke is a next-generation server for the Mercurial source control system, meant to scale up to accepting thousands of commits every hour across millions of files. It is primarily written in the Rust programming language.

Caveat Emptor

Mononoke is still in early stages of development. We are making it available now because we plan to start making references to it from our other open source projects.

The version that we provide on GitHub does not build yet.

This is because the code is exported verbatim from an internal repository at Facebook, and not all of the scaffolding from our internal repository can be easily extracted. The key areas where we need to shore things up are:

  • Full support for a standard cargo build.
  • Open source replacements for Facebook-internal services (blob store, logging etc).

The current goal is to get Mononoke working on Linux. Other Unix-like OSes may be supported in the future