sapling/eden/mononoke
Stanislau Hlebik 87f26ebe8d mononoke: admin rsync command
Summary:
This is a command that creates a commit that copies one directory into another.
Later you can take a commit and push it.

At the moment the command is very simple and also not very useful. At the very
least we need a way to limit the size of the commit, and this option is coming
in the next diff.

Note that the command doesn't overwrite the files if they exist in the target
directory - we may add an option to do so in future. Also if a file exists in
target directory but doesn't exist in source directory then it's left
untouched.

Reviewed By: ikostia

Differential Revision: D24451568

fbshipit-source-id: 2c7b945aadc99a1ca960349992c3684ef02ba35e
2020-10-22 13:01:25 -07:00
..
benchmark mononoke: update Memblob::new callsites to ::default() 2020-10-07 12:11:10 -07:00
blobimport_lib Update formatter to rustfmt 2.0 2020-09-09 07:52:33 -07:00
blobrepo mononoke/blobrepo_hg: optimize case conflict check performance 2020-10-15 09:49:39 -07:00
blobrepo_utils mononoke/mercurial_types: get rid of HgManifest & HgEntry 2020-10-15 04:56:13 -07:00
blobstore mononoke/{multiplexedblob,logblob}: capture operation perf counters 2020-10-16 08:57:13 -07:00
blobstore_sync_queue commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
bonsai_git_mapping improve error messages for mapping length errors 2020-09-21 08:39:12 -07:00
bonsai_globalrev_mapping improve error messages for mapping length errors 2020-09-21 08:39:12 -07:00
bonsai_hg_mapping Update formatter to rustfmt 2.0 2020-09-09 07:52:33 -07:00
bookmarks mononoke: add a tunable to disable pushredirected hooks 2020-10-16 08:24:56 -07:00
bulkops bulkops: add trait ChangesetBulkFetch 2020-10-08 09:43:46 -07:00
cache_warmup Regenerate all Cargo.tomls after upgrade to futures 0.3.5 2020-07-06 20:49:43 -07:00
changesets Update formatter to rustfmt 2.0 2020-09-09 07:52:33 -07:00
cmdlib Fix cache pool sizes 2020-10-21 10:16:45 -07:00
cmds mononoke: admin rsync command 2020-10-22 13:01:25 -07:00
commit_rewriting cross_repo_sync: don't expect Option<CommitSyncConfigVersion> 2020-10-22 02:44:09 -07:00
common rust: update rust to 1.47.0 2020-10-15 17:28:02 -07:00
derived_data batched tailing mode 2020-10-19 07:30:03 -07:00
edenapi_server trees: port SCS aux data request method to edenapi 2020-10-14 11:12:59 -07:00
fastreplay mononoke: deprecate preamble in favor of metadata 2020-09-15 10:28:38 -07:00
filenodes Remove crate_root from Rust dependency info 2020-08-31 14:43:24 -07:00
filestore mononoke/filestore: add missing error cause 2020-10-16 07:04:12 -07:00
git move existing changeset derivation logic to mercurial_derived_data 2020-09-09 07:56:32 -07:00
gotham_ext gotham_ext: use pin_project in SignalStream 2020-10-14 11:08:13 -07:00
hgcli mononoke/hgcli: log hgcli server data to Scuba 2020-10-01 05:22:47 -07:00
hgproto commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
hook_tailer hook_tailer: be able to run on push-redirected commits 2020-10-22 02:48:18 -07:00
hooks print regex when rejecting a file 2020-10-19 03:27:50 -07:00
lfs_import_lib autocargo: regenerate 2020-05-19 16:08:40 -07:00
lfs_protocol mononoke: try to compress values if they above cachelib limit 2020-06-20 01:05:54 -07:00
lfs_server mononoke/lfs_server: log client attempt 2020-10-19 05:01:57 -07:00
load_limiter Regenerate all Cargo.tomls after upgrade to futures 0.3.5 2020-07-06 20:49:43 -07:00
manifest mononoke: update Memblob::new callsites to ::default() 2020-10-07 12:11:10 -07:00
mercurial rust/shed/hostname: rename hostname dependency to unbreak doctests (#15) 2020-10-19 07:21:38 -07:00
metaconfig commit_rewriting: allow non-prefix free maps in metaconfig 2020-10-16 05:16:58 -07:00
microwave mononoke: allow logging censored scuba accesses to file 2020-09-04 07:37:14 -07:00
mononoke_api scs_server: add file_diff method 2020-10-20 05:45:39 -07:00
mononoke_hg_sync_job commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
mononoke_types rust/shed/hostname: rename hostname dependency to unbreak doctests (#15) 2020-10-19 07:21:38 -07:00
mutable_counters mononoke: read mutable_counters from replica in blobimport warmer 2020-10-07 05:24:30 -07:00
newfilenodes commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
permission_checker scribe_commit_queue: log all identities of pushing user 2020-10-22 01:11:11 -07:00
phases shed/sql: make queries! macros work with new Rust mysql client 2020-09-11 06:33:37 -07:00
pushrebase mononoke/types: indicate what path conflicted in a case conflict 2020-10-15 09:49:39 -07:00
reachabilityindex impl LCAHint for Arc<impl LCAHint> 2020-09-11 16:56:13 -07:00
regenerate_hg_filenodes mononoke/regenerate_hg_filenodes: make regenerate_hg_filenodes public (#39) 2020-07-30 06:50:54 -07:00
repo_client scribe_commit_queue: log all identities of pushing user 2020-10-22 01:11:11 -07:00
repo_import convert derived data utils to new futures 2020-10-16 07:46:07 -07:00
revset Prepare for rustfmt 2.0 2020-09-08 07:33:16 -07:00
scs_server scs_server: add file_diff method 2020-10-20 05:45:39 -07:00
segmented_changelog segmented_changelog: replace sql log tables with scuba 2020-10-09 11:17:03 -07:00
server mononoke/{multiplexedblob,logblob}: capture operation perf counters 2020-10-16 08:57:13 -07:00
sshrelay commit_rewriting: use is_empty() where possible 2020-10-04 10:03:42 -07:00
tests config: use Rust graph render as default 2020-10-19 17:07:30 -07:00
time_window_counter mononoke/lfs_server: popularity: add ODS counters, timeouts and tests 2020-07-15 03:39:23 -07:00
tunables mononoke: add a tunable to disable pushredirected hooks 2020-10-16 08:24:56 -07:00
unbundle_replay hooks: be aware of native vs push-redirected pushes 2020-10-13 05:46:56 -07:00
walker mononoke/mercurial_types: get rid of HgManifest & HgEntry 2020-10-15 04:56:13 -07:00
Cargo.toml mononoke: admin command to change mapping version 2020-10-19 09:46: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