sapling/eden/mononoke
Stanislau Hlebik 3418318883 mononoke: do not generate hgchangesets unnecessarily in FilenodesOnlyPublicMapping
Summary:
fetch_root_filenode is called by FilenodesOnlyPublicMapping to figure out if
filenodes were already derived. Previously it first derived hg changeset and
then fetched looked up root manifest in db. However if hg changeset is not
derived then filenodes couldn't possible be derived either and we can return an
answer faster.

This is useful in the next diff where I change walker

Reviewed By: ahornby

Differential Revision: D20068819

fbshipit-source-id: 17f066c437e0b1f7bbeb8f6e247eadc9afe94f90
2020-02-25 08:07:07 -08:00
..
apiserver convert to bytes 0.5 2020-02-24 10:28:46 -08:00
benchmark add git mappings to blobrepo 2020-02-21 05:41:44 -08:00
blobimport_lib/src add git mappings import option 2020-02-21 05:41:46 -08:00
blobrepo mononoke: include DB config in multiplexed blobstore configuration 2020-02-24 11:54:45 -08:00
blobrepo_utils mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
blobstore mononoke: include DB config in multiplexed blobstore configuration 2020-02-24 11:54:45 -08:00
blobstore_sync_queue mononoke/blobstore_sync_queue: delete in smaller batches 2020-02-20 12:26:50 -08:00
bonsai_git_mapping add git mapping pushrebase hook 2020-02-21 05:41:45 -08:00
bonsai_globalrev_mapping Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
bonsai_hg_mapping rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
bookmarks mononoke/warm_bookmarks_cache: use the repo's configuration 2020-02-18 07:40:25 -08:00
cache_warmup/src derived_data: add DeriveError for when derivation is disabled 2020-02-19 09:28:09 -08:00
changesets rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
cmdlib mononoke/blobstore: remove rocksdb blobstore and replace its usages with sqliteblob 2020-02-24 05:23:07 -08:00
cmds mononoke/blobstore_healer: wait for MyRouter properly 2020-02-25 07:03:28 -08:00
commit_rewriting mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
common mononoke/blobstore: remove rocksdb blobstore and replace its usages with sqliteblob 2020-02-24 05:23:07 -08:00
derived_data mononoke: do not generate hgchangesets unnecessarily in FilenodesOnlyPublicMapping 2020-02-25 08:07:07 -08:00
edenapi_server/src edenapi_server: move handlers to submodule 2020-02-19 09:59:14 -08:00
fastreplay/src mononoke: include DB config in multiplexed blobstore configuration 2020-02-24 11:54:45 -08:00
filenodes mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
filestore/src mononoke: Add hash::GitSha1 as a pure hash-only key for git Aliases 2020-02-18 05:02:52 -08:00
git rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
gotham_ext/src gotham_ext: move TLS-related middleware into gotham_ext 2020-02-13 17:47:34 -08:00
hgcli Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
hgproto rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
hook_tailer Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
hooks mononoke: Remove restrict_users hook 2020-02-21 09:46:38 -08:00
lfs_import_lib/src Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
lfs_protocol add lfs_protocol to autocargo 2020-02-24 11:12:45 -08:00
lfs_server/src lfs_protocol: remove dependency on mononoke_types 2020-02-21 12:26:19 -08:00
manifest Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
mercurial common/rust: remove unused asyncmemo from the codebase 2020-02-19 05:15:17 -08:00
metaconfig mononoke: include DB config in multiplexed blobstore configuration 2020-02-24 11:54:45 -08:00
mononoke_api/src derived_data: add DeriveError for when derivation is disabled 2020-02-19 09:28:09 -08:00
mononoke_types mononoke: make mononoke_types OSS-buildable 2020-02-24 05:23:07 -08:00
phases mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
pushrebase/src mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
reachabilityindex rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
repo_client add git mapping pushrebase hook 2020-02-21 05:41:45 -08:00
revset mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
scs_server/src derived_data: add DeriveError for when derivation is disabled 2020-02-19 09:28:09 -08:00
segmented_changelog/src mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
server mononoke: include DB config in multiplexed blobstore configuration 2020-02-24 11:54:45 -08:00
sshrelay rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
tests mononoke: include DB config in multiplexed blobstore configuration 2020-02-24 11:54:45 -08:00
walker/src mononoke: walker: add support for loading by GitSha1 Aliases 2020-02-25 03:36:06 -08:00
Cargo.toml mononoke: make mononoke_types OSS-buildable 2020-02-24 05:23:07 -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