sapling/eden/mononoke
Youssef Ibrahim 21cbf11f30 edenapi: add commit/graph_segments handler
Summary: Adds a new EdenAPI endpoint commit/graph_segments that returns a segmented representation of ancestors of one set of commits (heads) excluding ancestors of another set ot commits (common).

Reviewed By: markbt

Differential Revision: D46796194

fbshipit-source-id: 45513e97a1b42f3fbdbe14ed94961512011cb0d5
2023-06-26 05:12:38 -07:00
..
acl_regions commit_graph: replace usages of LeastCommonAncestorsHint::is_ancestor and ReachabilityIndex::query_reachability (conditional on a tunable) (except in ChangesetPathContext) 2023-05-23 11:26:11 -07:00
admin delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
aliasverify Move sharding_lib_ext under cmdlib 2023-04-27 08:18:19 -07:00
backfill_derived_data replace slice_repository with CommitGraph::slice_ancestors and delete commit_traversal directory 2023-05-23 11:26:11 -07:00
benchmarks cmdlib_caching: remove deprecated cachelib options 2023-06-16 03:21:13 -07:00
blobimport derived_data/filenodes_derivation: reorganise file layout 2023-04-13 06:39:07 -07:00
blobimport_lib Remove everything about ContentMetadata 2023-05-04 03:59:59 -07:00
blobrepo Using BonsaiTagMapping in GitImport and RemoteGitImport 2023-05-30 12:20:40 -07:00
blobrepo_utils Remove unused raw-api feature from dashmap crate 2023-05-22 10:38:20 -07:00
blobstore non-oss work 84/n 2023-06-22 07:46:20 -07:00
blobstore_healer Update clap from 4.1.11 to 4.2.4 2023-04-25 12:13:11 -07:00
blobstore_sync_queue (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
bonsai_git_mapping commit_graph: replace RangeNodeStream usages with new commit graph range_stream (conditional on a tunable for critical ones) 2023-04-28 10:24:20 -07:00
bonsai_globalrev_mapping Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
bonsai_hg_mapping Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
bonsai_svnrev_mapping Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
bonsai_tag_mapping Unit tests for bonsai_tag_mapping 2023-05-23 04:02:13 -07:00
bookmarks Clippy Fixes 2023-06-20 05:19:24 -07:00
bulkops Update strum and enable the derive feature 2023-06-13 03:32:44 -07:00
cache_warmup derived_data/filenodes_derivation: reorganise file layout 2023-04-13 06:39:07 -07:00
cats bump version to 0.1.2 2022-10-20 12:08:11 -07:00
changesets Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
cmdlib cmdlib_caching: remove deprecated cachelib options 2023-06-16 03:21:13 -07:00
cmds Clippy Fixes 2023-06-20 05:19:24 -07:00
commit_rewriting Clippy Fixes 2023-06-20 05:19:24 -07:00
common non-oss work 84/n 2023-06-22 07:46:20 -07:00
derived_data Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
edenapi_service edenapi: add commit/graph_segments handler 2023-06-26 05:12:38 -07:00
features Expose fetch-key-list through the API and the CLI 2023-06-20 07:15:08 -07:00
filenodes Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
filestore Update strum and enable the derive feature 2023-06-13 03:32:44 -07:00
git Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
gotham_ext import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
hgproto Fix clippy lints (1/N) 2023-03-10 09:41:25 -08:00
hooks hooks: allow other nocommit spellings 2023-06-16 14:53:10 -07:00
land_service delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
lfs_import_lib Clippy fixes 2023-05-09 06:49:45 -07:00
lfs_protocol update to rust 1.64.0 2022-09-27 15:18:58 -07:00
lfs_server import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
manifest (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
megarepo_api Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
mercurial Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
metaconfig pushrebase - allow exemptions from casefolding check 2023-06-20 16:48:55 -07:00
microwave Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
mononoke_api delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
mononoke_api_hg edenapi: add commit/graph_segments handler 2023-06-26 05:12:38 -07:00
mononoke_configs (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
mononoke_hg_sync_job import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
mononoke_repos upgrade to parking_lot-0.12.1 2023-06-02 18:45:03 -07:00
mononoke_types pushrebase - allow exemptions from casefolding check 2023-06-20 16:48:55 -07:00
mutable_counters Log mutable counters to ODS 2022-12-09 09:24:56 -08:00
mutable_renames Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
newfilenodes (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
observability update regex to 1.6.0 2022-10-31 21:28:04 -07:00
permission_checker Update openssl from 0.10.35 to 10.10.54 2023-06-05 06:35:30 -07:00
phases add new ods logging for bookmark fetching from phases crate 2023-05-31 13:57:24 -07:00
pushrebase pushrebase - allow exemptions from casefolding check 2023-06-20 16:48:55 -07:00
pushrebase_mutation_mapping test_repo_factory: add method for building warm bookmarks cache 2023-04-25 12:45:33 -07:00
quiet_stream (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
rate_limiting bump version to 0.1.2 2022-10-20 12:08:11 -07:00
repo_attributes commit_graph: implement ancestors_difference_segments 2023-06-26 05:12:38 -07:00
repo_authorization mononoke/vpn_less: add new AuthorizationContext type to replace ad-hoc checks scattered across push code 2023-06-06 13:20:30 -07:00
repo_client Clippy Fixes 2023-06-20 05:19:24 -07:00
repo_factory cmdlib_caching: remove deprecated cachelib options 2023-06-16 03:21:13 -07:00
repo_import add --no-merge flag 2023-06-22 10:31:22 -07:00
revset commit_graph: delete RangeNodeStream 2023-06-04 23:27:57 -07:00
scs improve repo_create_commit docs 2023-06-21 18:33:21 -07:00
scs_server Using BonsaiTagMapping in GitImport and RemoteGitImport 2023-05-30 12:20:40 -07:00
segmented_changelog upgrade to parking_lot-0.12.1 2023-06-02 18:45:03 -07:00
server import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
sshrelay third-party/rust: add experimental feature to zstd 2023-02-23 09:28:19 -08:00
statistics_collector Shard statistics_collector command 2023-06-13 04:01:12 -07:00
streaming_clone Update clap from 4.1.11 to 4.2.4 2023-04-25 12:13:11 -07:00
tests commit_graph: implement ancestors_difference_segments 2023-06-26 05:12:38 -07:00
time_window_counter bump version to 0.1.2 2022-10-20 12:08:11 -07:00
tools commit_graph: implement ancestors_difference_segments 2023-06-26 05:12:38 -07:00
tunables option to skip syncing empty commits 2023-06-15 08:46:20 -07:00
walker walker: specify cache-mode default 2023-06-16 03:21:13 -07:00
wireproto_handler backsyncer: remove connections from TargetRepoDbs 2023-04-12 01:48:40 -07:00
Cargo.toml Extract redaction feature to its own crate 2023-06-20 07:15:08 -07:00
README.md mononoke: README.md update 2022-02-21 02:23:21 -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 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 is omitting some functions.

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:

  • Support for running thrift based apis.
  • Production metadata SQL support (e.g. something like a MySQL backend). We provide sqlite in OSS for now.
  • Production blobstore storage backends (e.g. something like S3). We provide SQL (on sqlite) and File System backends currently in OSS.

Linux is Mononoke's primary target plaform with OSS CI also running on MacOS. Other Unix-like OSes may be supported in the future.

Subsystem Docs

Most of our documentation is in internal systems, however a few subsystems have in-repo markdown docs available: