sapling/eden/mononoke
Simon Farnsworth d3d1f33470 Special-case linkfile src="."
Summary:
I am making it impossible to put "." or ".." as a path element in Mononoke's `MPath` abstraction, since Mononoke does not do path traversal, and canonicalization is a minefield.

However, `linkfile src="."` occurs in https://fburl.com/code/evq63pto as a special case. Treat it specially in our code, so that I can forbid path traversal type elements in an `MPath`.

Reviewed By: mojsarn

Differential Revision: D33952767

fbshipit-source-id: 0c4ce68014fb6877163035d1c7eb813616748dd2
2022-02-02 14:17:56 -08:00
..
admin rust: remove mockall patch 2022-01-31 02:09:13 -08:00
aliasverify rust: remove mockall patch 2022-01-31 02:09:13 -08:00
alpn rust: remove mockall patch 2022-01-31 02:09:13 -08:00
backfill_derived_data rust: remove mockall patch 2022-01-31 02:09:13 -08:00
benchmark_filestore rust: remove mockall patch 2022-01-31 02:09:13 -08:00
benchmarks rust: remove mockall patch 2022-01-31 02:09:13 -08:00
blobimport rust: remove mockall patch 2022-01-31 02:09:13 -08:00
blobimport_lib rust: remove mockall patch 2022-01-31 02:09:13 -08:00
blobrepo rust: remove mockall patch 2022-01-31 02:09:13 -08:00
blobrepo_utils rust: remove mockall patch 2022-01-31 02:09:13 -08:00
blobstore tools/admin: add fetch command 2022-02-02 02:50:51 -08:00
blobstore_healer rust: remove mockall patch 2022-01-31 02:09:13 -08:00
blobstore_sync_queue rust: remove mockall patch 2022-01-31 02:09:13 -08:00
bonsai_git_mapping rust: remove mockall patch 2022-01-31 02:09:13 -08:00
bonsai_globalrev_mapping rust: remove mockall patch 2022-01-31 02:09:13 -08:00
bonsai_hg_mapping rust: remove mockall patch 2022-01-31 02:09:13 -08:00
bonsai_svnrev_mapping rust: remove mockall patch 2022-01-31 02:09:13 -08:00
bookmarks rust: remove mockall patch 2022-01-31 02:09:13 -08:00
bulkops rust: remove mockall patch 2022-01-31 02:09:13 -08:00
cache_warmup rust: remove mockall patch 2022-01-31 02:09:13 -08:00
changesets rust: remove mockall patch 2022-01-31 02:09:13 -08:00
cmdlib testtool: add mononoke-testtool drawdag 2022-02-02 04:27:29 -08:00
cmds tools/admin: implement blobstore subcommand 2022-02-01 05:14:27 -08:00
commit_rewriting rust: remove mockall patch 2022-01-31 02:09:13 -08:00
common remove hgcli code path from mononoke server 2022-01-31 09:07:48 -08:00
derived_data rust: remove mockall patch 2022-01-31 02:09:13 -08:00
edenapi_service rust: remove mockall patch 2022-01-31 02:09:13 -08:00
fastreplay rust: remove mockall patch 2022-01-31 02:09:13 -08:00
filenodes rust: remove mockall patch 2022-01-31 02:09:13 -08:00
filestore rust: remove mockall patch 2022-01-31 02:09:13 -08:00
git rust: remove mockall patch 2022-01-31 02:09:13 -08:00
gotham_ext rust: remove mockall patch 2022-01-31 02:09:13 -08:00
hgproto rust: remove mockall patch 2022-01-31 02:09:13 -08:00
hook_tailer rust: remove mockall patch 2022-01-31 02:09:13 -08:00
hooks rust: remove mockall patch 2022-01-31 02:09:13 -08:00
lfs_import rust: remove mockall patch 2022-01-31 02:09:13 -08:00
lfs_import_lib rust: remove mockall patch 2022-01-31 02:09:13 -08:00
lfs_protocol rust: remove mockall patch 2022-01-31 02:09:13 -08:00
lfs_server rust: remove mockall patch 2022-01-31 02:09:13 -08:00
manifest rust: remove mockall patch 2022-01-31 02:09:13 -08:00
megarepo_api Special-case linkfile src="." 2022-02-02 14:17:56 -08:00
mercurial rust: remove mockall patch 2022-01-31 02:09:13 -08:00
metaconfig rust: remove mockall patch 2022-01-31 02:09:13 -08:00
microwave rust: remove mockall patch 2022-01-31 02:09:13 -08:00
mononoke_api rust: remove mockall patch 2022-01-31 02:09:13 -08:00
mononoke_api_hg rust: remove mockall patch 2022-01-31 02:09:13 -08:00
mononoke_hg_sync_job Extract retry function from hg_sync_job to common lib 2022-01-31 04:50:45 -08:00
mononoke_types tools/admin: implement blobstore subcommand 2022-02-01 05:14:27 -08:00
mutable_counters rust: remove mockall patch 2022-01-31 02:09:13 -08:00
mutable_renames rust: remove mockall patch 2022-01-31 02:09:13 -08:00
newfilenodes rust: remove mockall patch 2022-01-31 02:09:13 -08:00
observability rust: remove mockall patch 2022-01-31 02:09:13 -08:00
permission_checker rust: remove mockall patch 2022-01-31 02:09:13 -08:00
phases rust: remove mockall patch 2022-01-31 02:09:13 -08:00
pushrebase rust: remove mockall patch 2022-01-31 02:09:13 -08:00
pushrebase_mutation_mapping rust: remove mockall patch 2022-01-31 02:09:13 -08:00
quiet_stream rust: remove mockall patch 2022-01-31 02:09:13 -08:00
rate_limiting rust: remove mockall patch 2022-01-31 02:09:13 -08:00
reachabilityindex rust: remove mockall patch 2022-01-31 02:09:13 -08:00
regenerate_hg_filenodes rust: remove mockall patch 2022-01-31 02:09:13 -08:00
repo_attributes rust: remove mockall patch 2022-01-31 02:09:13 -08:00
repo_client Add retries to streaming_clone sql queries 2022-01-31 04:50:45 -08:00
repo_factory rust: remove mockall patch 2022-01-31 02:09:13 -08:00
repo_import rust: remove mockall patch 2022-01-31 02:09:13 -08:00
revset rust: remove mockall patch 2022-01-31 02:09:13 -08:00
scs rust: remove mockall patch 2022-01-31 02:09:13 -08:00
scs_server move crate into mononoke_app 2022-01-27 08:23:21 -08:00
segmented_changelog rust: remove mockall patch 2022-01-31 02:09:13 -08:00
server remove Priority from metadata 2022-01-31 09:07:49 -08:00
sshrelay remove Priority from metadata 2022-01-31 09:07:49 -08:00
statistics_collector rust: remove mockall patch 2022-01-31 02:09:13 -08:00
streaming_clone rust: remove mockall patch 2022-01-31 02:09:13 -08:00
tests Default master-fastpath to True 2022-02-02 11:01:34 -08:00
time_window_counter rust: remove mockall patch 2022-01-31 02:09:13 -08:00
tools testtool: add mononoke-testtool drawdag 2022-02-02 04:27:29 -08:00
tunables rust: remove mockall patch 2022-01-31 02:09:13 -08:00
unbundle_replay rust: remove mockall patch 2022-01-31 02:09:13 -08:00
upload_globalrevs rust: remove mockall patch 2022-01-31 02:09:13 -08:00
walker rust: remove mockall patch 2022-01-31 02:09:13 -08:00
Cargo.toml testtool: add mononoke-testtool drawdag 2022-02-02 04:27:29 -08: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