sapling/eden/mononoke
Mateusz Kwapich 35d04fb79f add --no-merge flag
Summary:
This flag allows the repo import to progress through all the steps
but bail before actually merging in the repos.

Currently the repo_import tool is so slow that all the pre-merge steps
can take hours. This makes it really hard to control when the actual merge
commit will happen. This flag will allow us to prepare all those steps
ahead-of-time and then resume with just merge in mind.

I don't think it's a proper long-term fix but I found it useful when working
wath whatsapp/biz and would use it again util we properly optimize repo_import
tool.

Differential Revision: D46802952

fbshipit-source-id: 2e8185482c4ba9c04fed20013efcc80d75e80bad
2023-06-22 10:31:22 -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 import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -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 used cached version of API 2023-05-25 06:40:27 -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 non-oss work 83/n 2023-06-22 07:46:20 -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 Expose fetch-key-list through the API and the CLI 2023-06-20 07:15:08 -07:00
time_window_counter bump version to 0.1.2 2022-10-20 12:08:11 -07:00
tools non-oss work 84/n 2023-06-22 07:46:20 -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: