sapling/eden/mononoke
Carolyn Busch f8e83ab129 add graph endpoint
Summary: Implement serverside graph endpoint for fetching the mapping of commits to commit parents for the missing segment of a commit graph. This implementation uses the find_commits_to_send method from the get_bundle_response library. What may be missing from pull and the old bundle protocol now is mutation markers.

Reviewed By: yancouto

Differential Revision: D30485672

fbshipit-source-id: ba3a30d9e482d60831cbe7a8e89f20dab947d9a1
2021-09-07 19:53:04 -07:00
..
admin third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
aliasverify third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
alpn third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
backfill_derived_data Daily common/rust/cargo_from_buck/bin/autocargo 2021-09-07 01:43:29 -07:00
benchmark_filestore third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
benchmarks filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
blobimport third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
blobimport_lib third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
blobrepo filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
blobrepo_utils third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
blobstore third-party/rust: update strum 2021-09-02 11:26:28 -07:00
blobstore_healer third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
blobstore_sync_queue third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
bonsai_git_mapping third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
bonsai_globalrev_mapping third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
bonsai_hg_mapping third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
bonsai_svnrev_mapping third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
bookmarks third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
bulkops third-party/rust: update strum 2021-09-02 11:26:28 -07:00
cache_warmup third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
changesets third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
cmdlib Allow more read-connection-types when creating SqlConnections 2021-09-06 14:40:47 -07:00
cmds filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
commit_rewriting third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
common Allow more read-connection-types when creating SqlConnections 2021-09-06 14:40:47 -07:00
derived_data filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
edenapi_server third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
edenapi_service add graph endpoint 2021-09-07 19:53:04 -07:00
fastreplay third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
filenodes filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
filestore third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
git mercurial_derived_data: make derivation not depend on BlobRepo 2021-09-07 07:44:28 -07:00
gotham_ext third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
hgcli third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
hgproto third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
hook_tailer third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
hooks third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
lfs_import third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
lfs_import_lib third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
lfs_protocol third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
lfs_server third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
manifest third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
megarepo_api allow recreating targets without removing the configs 2021-09-07 11:33:18 -07:00
mercurial third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
metaconfig third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
microwave filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
mononoke_api third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
mononoke_api_hg add graph endpoint 2021-09-07 19:53:04 -07:00
mononoke_hg_sync_job third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
mononoke_types third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
mutable_counters third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
mutable_renames third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
newfilenodes filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
observability third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
permission_checker third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
phases third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
pushrebase third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
pushrebase_mutation_mapping third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
quiet_stream third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
rate_limiting third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
reachabilityindex third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
regenerate_hg_filenodes filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
repo_attributes dangerous_override: override blobstore in derived data manager 2021-09-07 07:44:27 -07:00
repo_client add graph endpoint 2021-09-07 19:53:04 -07:00
repo_factory filenodes: store repo_id and update to new futures 2021-09-07 07:44:28 -07:00
repo_import third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
revset third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
scs third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
scs_server Upload snapshot to ephemeral blobstore 2021-08-24 09:02:26 -07:00
segmented_changelog mononoke: allow using prefetched commits in segmented_changelog_seeder 2021-09-06 11:32:17 -07:00
server third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
sshrelay third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
statistics_collector third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
streaming_clone third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
tests add graph endpoint 2021-09-07 19:53:04 -07:00
time_window_counter third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
tunables third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
unbundle_replay third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
upload_globalrevs third-party/rust: update daemonize to 0.5 2021-09-02 06:27:03 -07:00
walker third-party/rust: update strum 2021-09-02 11:26:28 -07:00
Cargo.toml Daily common/rust/cargo_from_buck/bin/autocargo 2021-09-07 01:43:29 -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