sapling/eden/mononoke
Stanislau Hlebik ea794c29b4 mononoke: make it possible automatically select parents when manually rewriting
Summary:
One of the things that megarepo_tool can do is to manually rewrite a commit
from one repo to another with a particular commit remapping version.

e.g.

```

source repo
X
|
P

target repo
X'  <- rewritten X
|
A   <- commit that exists only in target repo
|
P'  <- rewritten P

```

Previously it always required manually setting the parents in the target repo
i.e. in the example above we'd need to tell that A is the new parent of
rewritten commit.

However this is not always convenient. Sometimes we just want megarepo_tool to take
parents in the source repo (i.e. P in the example above), remap them to large repo
(i.e. P' in the example above), and use P' as a target repo parent.

This diff adds a special option that lets us do so.

Reviewed By: farnz

Differential Revision: D30040016

fbshipit-source-id: 116dbe1803857053336ca76d0a65dbca8b14bd73
2021-08-03 08:46:41 -07:00
..
admin Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
aliasverify third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
alpn third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
backfill_derived_data Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
benchmark_filestore third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
benchmarks Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
blobimport third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
blobimport_lib third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
blobrepo Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
blobrepo_utils mononoke: remove chashmap usage from blobrepo_utils 2021-08-02 13:02:29 -07:00
blobstore Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
blobstore_healer Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
blobstore_sync_queue Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
bonsai_git_mapping Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
bonsai_globalrev_mapping Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
bonsai_hg_mapping Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
bonsai_svnrev_mapping Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
bookmarks mononoke: start logging repo name to scribe commit queue 2021-08-02 06:48:48 -07:00
bulkops third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
cache_warmup third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
changesets Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
cmdlib Provide a way to write Megarepo configs to disk for testing 2021-08-02 13:53:04 -07:00
cmds mononoke: use bookmark subscription in derived data tailer 2021-07-29 02:09:58 -07:00
commit_rewriting mononoke: make it possible automatically select parents when manually rewriting 2021-08-03 08:46:41 -07:00
common Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
derived_data Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
edenapi_server third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
edenapi_service Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
fastreplay third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
filenodes Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
filestore Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
git Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
gotham_ext Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
hgcli third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
hgproto third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
hook_tailer third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
hooks Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
lfs_import third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
lfs_import_lib third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
lfs_protocol third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
lfs_server Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
manifest Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
megarepo_api Provide a way to write Megarepo configs to disk for testing 2021-08-02 13:53:04 -07:00
mercurial Update to Rust 1.54.0 2021-07-30 08:42:15 -07:00
metaconfig mononoke: implement ensure_ancestors_of option for bookmarks 2021-07-27 12:47:22 -07:00
microwave Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
mononoke_api mononoke_api: remove dependency on futures-old 2021-08-02 14:14:19 -07:00
mononoke_api_hg Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
mononoke_hg_sync_job third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
mononoke_types Common implementation for all hash types 2021-08-02 05:37:20 -07:00
mutable_counters third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
newfilenodes third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
observability third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
permission_checker Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
phases Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
pushrebase Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
pushrebase_mutation_mapping Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
quiet_stream third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
rate_limiting Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
reachabilityindex mononoke: removed chashmap from skiplist 2021-08-03 01:44:36 -07:00
regenerate_hg_filenodes third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
repo_attributes third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
repo_client mononoke: add "tag" to streaming_changelog_chunks 2021-08-02 10:33:44 -07:00
repo_factory third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
repo_import mononoke: implement ensure_ancestors_of option for bookmarks 2021-07-27 12:47:22 -07:00
revset Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
scs Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
scs_server mononoke: print latest error when reading megarepo configs 2021-07-27 02:13:09 -07:00
segmented_changelog Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
server third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
sshrelay third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
statistics_collector third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
streaming_clone third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
tests mononoke: start logging repo name to scribe commit queue 2021-08-02 06:48:48 -07:00
time_window_counter Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
tunables third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
unbundle_replay Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
upload_globalrevs third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -07:00
walker Make thrift-generated dyn async traits future compatible 2021-07-29 16:25:33 -07:00
Cargo.toml third-party/rust: remove patch from curl and curl-sys 2021-07-26 15:00:16 -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