sapling/eden/mononoke
Alex Hornby 946472a110 mononoke: make BlobConfig hashable
Summary:
This is useful for jobs running multiple repos as it can then open the blobstore as many times as there are storage configs rather than as many times as there are repos.

Used in a diff I'm working on to group repos by storage config in a HashMap when setting up the walker to scrub multiple repos from single process.

Reviewed By: farnz

Differential Revision: D25422758

fbshipit-source-id: 578799db63dcf0bce4a79fca9642651601f2deeb
2020-12-11 01:36:06 -08:00
..
benchmark mononoke: move expected_item_size_byte into CachelibSettings 2020-12-02 00:47:22 -08:00
blobimport_lib mononoke: fix blobimport importing a 0 revision only 2020-12-10 11:29:37 -08:00
blobrepo blobrepo: update factory to set SegmentedChagelog on the production setup 2020-12-08 18:30:25 -08:00
blobrepo_utils convert to new type futures 2020-12-01 03:03:45 -08:00
blobstore autocargo: regen 2020-12-08 18:30:24 -08:00
blobstore_sync_queue mononoke/blobstore: pass CoreContext via borrowed instead of owned value 2020-11-27 03:31:07 -08:00
bonsai_git_mapping mononoke/blobstore: pass CoreContext via borrowed instead of owned value 2020-11-27 03:31:07 -08:00
bonsai_globalrev_mapping mononoke/caching_ext: unify our cache stats reporting 2020-12-10 12:01:45 -08:00
bonsai_hg_mapping mononoke/caching_ext: unify our cache stats reporting 2020-12-10 12:01:45 -08:00
bookmarks mononoke/warm_bookmarks_cache: don't initialize ALL bookmarks at once 2020-12-08 08:30:56 -08:00
bulkops convert BlobRepo::get_bonsai_bookmark to new type futures 2020-11-27 11:11:18 -08:00
cache_warmup scuba: turn ScubaSampleBuilderExt into a wrapper struct 2020-11-30 21:26:24 -08:00
changesets mononoke/caching_ext: unify our cache stats reporting 2020-12-10 12:01:45 -08:00
cmdlib eden/mononoke: allow turning on the bonsai / globalrev cache 2020-12-07 08:23:19 -08:00
cmds admin: make rsync capable of working across repos 2020-12-10 11:45:08 -08:00
commit_rewriting admin: make rsync capable of working across repos 2020-12-10 11:45:08 -08:00
common Add Debug/Copy/Clone to PoolSizeConfig 2020-12-10 12:05:16 -08:00
derived_data mononoke: do not use batched in derived_data_tailer 2020-12-07 02:51:45 -08:00
edenapi_server edenapi: add full_idmap_clone endpoint 2020-12-08 18:30:24 -08:00
fastreplay autocargo: regen 2020-12-08 18:30:24 -08:00
filenodes rust-shed/futures_01_ext: rename futures_ext to futures_01_ext 2020-11-05 06:07:16 -08:00
filestore mononoke/blobstore: pass CoreContext via borrowed instead of owned value 2020-11-27 03:31:07 -08:00
git Extend gitimport functionality 2020-12-10 17:26:22 -08:00
gotham_ext autocargo: regen 2020-12-08 18:30:24 -08:00
hgcli scuba: turn ScubaSampleBuilderExt into a wrapper struct 2020-11-30 21:26:24 -08:00
hgproto unit test for dechunker raw bundle2 saving 2020-11-19 06:41:06 -08:00
hook_tailer mononoke: remove the need to pass in cachelib settings twice 2020-12-02 07:27:23 -08:00
hooks hooks: show the size of the large commit being blocked 2020-12-09 16:44:41 -08:00
lfs_import_lib mononoke/blobstore: pass CoreContext via borrowed instead of owned value 2020-11-27 03:31:07 -08:00
lfs_protocol autocargo: regen 2020-12-08 18:30:24 -08:00
lfs_server autocargo: regen 2020-12-08 18:30:24 -08:00
load_limiter Regenerate all Cargo.tomls after upgrade to futures 0.3.5 2020-07-06 20:49:43 -07:00
manifest mononoke/manifest: add Entry::map_leaf and Entry::map_tree 2020-12-10 03:07:45 -08:00
mercurial autocargo: regen 2020-12-08 18:30:24 -08:00
metaconfig mononoke: make BlobConfig hashable 2020-12-11 01:36:06 -08:00
microwave mononoke: remove the need to pass in cachelib settings twice 2020-12-02 07:27:23 -08:00
mononoke_api edenapi: add full_idmap_clone endpoint 2020-12-08 18:30:24 -08:00
mononoke_hg_sync_job autocargo: regen 2020-12-08 18:30:24 -08:00
mononoke_types Extend gitimport functionality 2020-12-10 17:26:22 -08:00
mutable_counters rust-shed/futures_01_ext: rename futures_ext to futures_01_ext 2020-11-05 06:07:16 -08:00
newfilenodes mononoke/caching_ext: remove 0.1 futures 2020-12-10 10:24:58 -08:00
observability observability: add dynamic level drain 2020-12-04 14:30:29 -08:00
permission_checker bypassing hooks for members of scm 2020-10-29 10:14:25 -07:00
phases mononoke/caching_ext: unify our cache stats reporting 2020-12-10 12:01:45 -08:00
pushrebase convert save_bonsai_changesets to new type futures 2020-11-30 12:00:22 -08:00
reachabilityindex convert to new type futures 2020-12-02 15:40:12 -08:00
regenerate_hg_filenodes mononoke: show cachelib cache_size in --help usage 2020-12-02 07:27:23 -08:00
repo_client autocargo: regen 2020-12-08 18:30:24 -08:00
repo_import Extend gitimport functionality 2020-12-10 17:26:22 -08:00
revset convert to new type futures 2020-12-02 15:40:12 -08:00
scs_server mononoke: show cachelib cache_size in --help usage 2020-12-02 07:27:23 -08:00
segmented_changelog edenapi: add full_idmap_clone endpoint 2020-12-08 18:30:24 -08:00
server mononoke: remove the need to pass in cachelib settings twice 2020-12-02 07:27:23 -08:00
sshrelay autocargo: regen 2020-12-08 18:30:24 -08:00
tests Extend gitimport functionality 2020-12-10 17:26:22 -08:00
time_window_counter mononoke/lfs_server: popularity: add ODS counters, timeouts and tests 2020-07-15 03:39:23 -07:00
tunables autocargo: regen 2020-12-08 18:30:24 -08:00
unbundle_replay autocargo: regen 2020-12-08 18:30:24 -08:00
walker mononoke: remove unnecessary static lifetime in walker constants 2020-12-11 01:36:06 -08:00
Cargo.toml autocargo: regen 2020-12-08 18:30:24 -08: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