sapling/eden/mononoke
Alex Hornby becc064c48 mononoke: add a BonsaiDerived::fetch_derived method that will get the derived data if present
Summary:
This diff adds a method BonsaiDerived::fetch_derived which is useful for callers currently doing BonsaiDerived::is_derived, and then BonsaiDerived::fetch_derived.

Using the new method cuts out one round trip to derived data, and simplifies calling code.   Usage of this in the walker when scrubbing fs nodes is in the next diff.

Reviewed By: StanislavGlebik

Differential Revision: D24311166

fbshipit-source-id: dc52a15076768a6a15ede6dd5872aaaf3f552b66
2020-10-27 02:37:41 -07:00
..
benchmark mononoke: update Memblob::new callsites to ::default() 2020-10-07 12:11:10 -07:00
blobimport_lib Update formatter to rustfmt 2.0 2020-09-09 07:52:33 -07:00
blobrepo convert ManifestOps to new style futures 2020-10-23 06:42:35 -07:00
blobrepo_utils convert ManifestOps to new style futures 2020-10-23 06:42:35 -07:00
blobstore thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
blobstore_sync_queue commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
bonsai_git_mapping improve error messages for mapping length errors 2020-09-21 08:39:12 -07:00
bonsai_globalrev_mapping improve error messages for mapping length errors 2020-09-21 08:39:12 -07:00
bonsai_hg_mapping thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
bookmarks bookmarks_movement: check repo lock state before moving public bookmarks 2020-10-26 07:56:31 -07:00
bulkops bulkops: add trait ChangesetBulkFetch 2020-10-08 09:43:46 -07:00
cache_warmup convert ManifestOps to new style futures 2020-10-23 06:42:35 -07:00
changesets thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
cmdlib Make config store always explicit 2020-10-24 06:23:49 -07:00
cmds mononoke: do not create rsync commit if there's nothing to move 2020-10-26 05:30:53 -07:00
commit_rewriting Make config store always explicit 2020-10-24 06:23:49 -07:00
common rust: update rust to 1.47.0 2020-10-15 17:28:02 -07:00
derived_data mononoke: add a BonsaiDerived::fetch_derived method that will get the derived data if present 2020-10-27 02:37:41 -07:00
edenapi_server history: introduce separate wire types for history API 2020-10-25 18:39:34 -07:00
fastreplay Make config store always explicit 2020-10-24 06:23:49 -07:00
filenodes thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
filestore mononoke/filestore: add missing error cause 2020-10-16 07:04:12 -07:00
git Ensure we have only one ConfigStore for the application 2020-10-24 06:23:49 -07:00
gotham_ext gotham_ext: use pin_project in SignalStream 2020-10-14 11:08:13 -07:00
hgcli mononoke/hgcli: log hgcli server data to Scuba 2020-10-01 05:22:47 -07:00
hgproto commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
hook_tailer Make config store always explicit 2020-10-24 06:23:49 -07:00
hooks print regex when rejecting a file 2020-10-19 03:27:50 -07:00
lfs_import_lib autocargo: regenerate 2020-05-19 16:08:40 -07:00
lfs_protocol mononoke: try to compress values if they above cachelib limit 2020-06-20 01:05:54 -07:00
lfs_server Make config store always explicit 2020-10-24 06:23:49 -07:00
load_limiter Regenerate all Cargo.tomls after upgrade to futures 0.3.5 2020-07-06 20:49:43 -07:00
manifest convert ManifestOps to new style futures 2020-10-23 06:42:35 -07:00
mercurial thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
metaconfig Ensure we have only one ConfigStore for the application 2020-10-24 06:23:49 -07:00
microwave Make config store always explicit 2020-10-24 06:23:49 -07:00
mononoke_api bookmarks_movement: check repo lock state before moving public bookmarks 2020-10-26 07:56:31 -07:00
mononoke_hg_sync_job Make config store always explicit 2020-10-24 06:23:49 -07:00
mononoke_types thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
mutable_counters mononoke: read mutable_counters from replica in blobimport warmer 2020-10-07 05:24:30 -07:00
newfilenodes commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
permission_checker scribe_commit_queue: log all identities of pushing user 2020-10-22 01:11:11 -07:00
phases shed/sql: make queries! macros work with new Rust mysql client 2020-09-11 06:33:37 -07:00
pushrebase convert ManifestOps to new style futures 2020-10-23 06:42:35 -07:00
reachabilityindex thrift: call hooks from Rust codegen 2020-10-22 17:01:47 -07:00
regenerate_hg_filenodes mononoke/regenerate_hg_filenodes: make regenerate_hg_filenodes public (#39) 2020-07-30 06:50:54 -07:00
repo_client bookmarks_movement: check repo lock state before moving public bookmarks 2020-10-26 07:56:31 -07:00
repo_import Make config store always explicit 2020-10-24 06:23:49 -07:00
revset Prepare for rustfmt 2.0 2020-09-08 07:33:16 -07:00
scs_server Ensure we have only one ConfigStore for the application 2020-10-24 06:23:49 -07:00
segmented_changelog segmented_changelog: replace sql log tables with scuba 2020-10-09 11:17:03 -07:00
server Make config store always explicit 2020-10-24 06:23:49 -07:00
sshrelay commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
tests trees: use separate type for child metadata entries 2020-10-25 18:39:34 -07:00
time_window_counter mononoke/lfs_server: popularity: add ODS counters, timeouts and tests 2020-07-15 03:39:23 -07:00
tunables mononoke: add a tunable to disable pushredirected hooks 2020-10-16 08:24:56 -07:00
unbundle_replay Make config store always explicit 2020-10-24 06:23:49 -07:00
walker Make config store always explicit 2020-10-24 06:23:49 -07:00
Cargo.toml mononoke: add a pushrebase command to mononoke_admin 2020-10-26 04:57:44 -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