sapling/eden/mononoke
Yan Soares Couto f0a287580e Add wrapper around redacted blobs
Summary:
For context and high level goal, see: https://fb.quip.com/8zOkAQRiXGQ3

Instead of using `HashMap<String, RedactedMetadata>` everywhere, let's use a `Arc<RedactedBlobs>` object from which we can instead borrow a map. The borrow function is async because it will need to be when we're fetching from configerator, as it may need to rebuild the redaction data.

Wrapping it in `Arc` will also makes it re-use the same across repos, I believe right now it's cloned everywhere.

In later diffs I'll use this enum to add a new way to fetch configs.

Reviewed By: markbt

Differential Revision: D28935506

fbshipit-source-id: befa96810ee7ebb9487f99f9e769a945981b58ed
2021-06-21 08:42:16 -07:00
..
admin Update bytecount 2021-06-17 19:50:32 -07:00
aliasverify Update bytecount 2021-06-17 19:50:32 -07:00
alpn Update bytecount 2021-06-17 19:50:32 -07:00
backfill_derived_data Update bytecount 2021-06-17 19:50:32 -07:00
benchmark_filestore Update bytecount 2021-06-17 19:50:32 -07:00
benchmarks Update bytecount 2021-06-17 19:50:32 -07:00
blobimport Update bytecount 2021-06-17 19:50:32 -07:00
blobimport_lib Update bytecount 2021-06-17 19:50:32 -07:00
blobrepo Add wrapper around redacted blobs 2021-06-21 08:42:16 -07:00
blobrepo_utils Update bytecount 2021-06-17 19:50:32 -07:00
blobstore Add wrapper around redacted blobs 2021-06-21 08:42:16 -07:00
blobstore_healer Update bytecount 2021-06-17 19:50:32 -07:00
blobstore_sync_queue Update bytecount 2021-06-17 19:50:32 -07:00
bonsai_git_mapping Update bytecount 2021-06-17 19:50:32 -07:00
bonsai_globalrev_mapping Update bytecount 2021-06-17 19:50:32 -07:00
bonsai_hg_mapping Update bytecount 2021-06-17 19:50:32 -07:00
bonsai_svnrev_mapping Update bytecount 2021-06-17 19:50:32 -07:00
bookmarks Update bytecount 2021-06-17 19:50:32 -07:00
bulkops Update bytecount 2021-06-17 19:50:32 -07:00
cache_warmup Update bytecount 2021-06-17 19:50:32 -07:00
changesets Update bytecount 2021-06-17 19:50:32 -07:00
cmdlib Update bytecount 2021-06-17 19:50:32 -07:00
cmds Add wrapper around redacted blobs 2021-06-21 08:42:16 -07:00
commit_rewriting Update bytecount 2021-06-17 19:50:32 -07:00
common Update bytecount 2021-06-17 19:50:32 -07:00
derived_data mononoke: log when derived data mapping was inserted 2021-06-21 01:19:52 -07:00
edenapi_server Update bytecount 2021-06-17 19:50:32 -07:00
edenapi_service mononoke/eden: reduce the number of ODS timeseries 2021-06-18 04:16:59 -07:00
fastreplay Update bytecount 2021-06-17 19:50:32 -07:00
filenodes Update bytecount 2021-06-17 19:50:32 -07:00
filestore Update bytecount 2021-06-17 19:50:32 -07:00
git Add a tool to check working copy equivalence between git and Mononoke 2021-06-21 07:35:31 -07:00
gotham_ext Update bytecount 2021-06-17 19:50:32 -07:00
hgcli Update bytecount 2021-06-17 19:50:32 -07:00
hgproto Update bytecount 2021-06-17 19:50:32 -07:00
hook_tailer Update bytecount 2021-06-17 19:50:32 -07:00
hooks Update bytecount 2021-06-17 19:50:32 -07:00
lfs_import Update bytecount 2021-06-17 19:50:32 -07:00
lfs_import_lib Update bytecount 2021-06-17 19:50:32 -07:00
lfs_protocol Update bytecount 2021-06-17 19:50:32 -07:00
lfs_server Add wrapper around redacted blobs 2021-06-21 08:42:16 -07:00
load_limiter Update bytecount 2021-06-17 19:50:32 -07:00
manifest Update bytecount 2021-06-17 19:50:32 -07:00
megarepo_api Update bytecount 2021-06-17 19:50:32 -07:00
mercurial Update bytecount 2021-06-17 19:50:32 -07:00
metaconfig Update bytecount 2021-06-17 19:50:32 -07:00
microwave Update bytecount 2021-06-17 19:50:32 -07:00
mononoke_api Update bytecount 2021-06-17 19:50:32 -07:00
mononoke_api_hg Update bytecount 2021-06-17 19:50:32 -07:00
mononoke_hg_sync_job Update bytecount 2021-06-17 19:50:32 -07:00
mononoke_types Update bytecount 2021-06-17 19:50:32 -07:00
mutable_counters Update bytecount 2021-06-17 19:50:32 -07:00
newfilenodes Update bytecount 2021-06-17 19:50:32 -07:00
observability Update bytecount 2021-06-17 19:50:32 -07:00
permission_checker Update bytecount 2021-06-17 19:50:32 -07:00
phases Update bytecount 2021-06-17 19:50:32 -07:00
pushrebase Update bytecount 2021-06-17 19:50:32 -07:00
pushrebase_mutation_mapping Update bytecount 2021-06-17 19:50:32 -07:00
quiet_stream Update bytecount 2021-06-17 19:50:32 -07:00
reachabilityindex Update bytecount 2021-06-17 19:50:32 -07:00
regenerate_hg_filenodes Update bytecount 2021-06-17 19:50:32 -07:00
repo_attributes Update bytecount 2021-06-17 19:50:32 -07:00
repo_client Update bytecount 2021-06-17 19:50:32 -07:00
repo_factory Add wrapper around redacted blobs 2021-06-21 08:42:16 -07:00
repo_import Update bytecount 2021-06-17 19:50:32 -07:00
revset Update bytecount 2021-06-17 19:50:32 -07:00
scs Update bytecount 2021-06-17 19:50:32 -07:00
scs_server Implement rust.name and emit raw identifiers for rust keywords 2021-06-10 10:52:36 -07:00
segmented_changelog Update bytecount 2021-06-17 19:50:32 -07:00
server Update bytecount 2021-06-17 19:50:32 -07:00
sshrelay Update bytecount 2021-06-17 19:50:32 -07:00
statistics_collector Update bytecount 2021-06-17 19:50:32 -07:00
streaming_clone Update bytecount 2021-06-17 19:50:32 -07:00
tests Add a tool to check working copy equivalence between git and Mononoke 2021-06-21 07:35:31 -07:00
time_window_counter Update bytecount 2021-06-17 19:50:32 -07:00
tunables Update bytecount 2021-06-17 19:50:32 -07:00
unbundle_replay Update bytecount 2021-06-17 19:50:32 -07:00
upload_globalrevs Update bytecount 2021-06-17 19:50:32 -07:00
walker mononoke: improve couple of ifs in walker 2021-06-21 02:37:24 -07:00
Cargo.toml Add a tool to check working copy equivalence between git and Mononoke 2021-06-21 07:35:31 -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