sapling/eden/mononoke
Stanislau Hlebik cf0380dccb mononoke: fix handling of mutable renames in fastlog
Summary:
Handling of mutable renames was incorrect for two reasons:
1) We didn't add an entry to history graph, so only a single changeset before
rename was returned. That was easy to "fix" (just add a new entry to history
graph), but...
2) ...all history operations now have to use a different path (the source of
the rename path).

To fix it let's track not just the changeset id, but also the path for the
given changeset id. Since the path can potentially be large I wrapped it into
Arc to avoid expensive clones.

Differential Revision: D30576342

fbshipit-source-id: a99f6269c34b0a0c626104ec47c9392f984328fb
2021-08-27 05:58:31 -07:00
..
admin Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
aliasverify Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
alpn Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
backfill_derived_data Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
benchmark_filestore Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
benchmarks Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobimport Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobimport_lib Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobrepo Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobrepo_utils Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobstore Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobstore_healer Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
blobstore_sync_queue Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
bonsai_git_mapping Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
bonsai_globalrev_mapping Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
bonsai_hg_mapping Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
bonsai_svnrev_mapping Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
bookmarks Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
bulkops Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
cache_warmup Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
changesets Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
cmdlib Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
cmds mononoke: support multiple derived data types in backfill_derived_data single 2021-08-26 02:18:25 -07:00
commit_rewriting regenerate Cargo.toml 2021-08-25 16:41:21 -07:00
common Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
derived_data mononoke: fix handling of mutable renames in fastlog 2021-08-27 05:58:31 -07:00
edenapi_server Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
edenapi_service Endpoint for fetching snapshot info 2021-08-26 07:24:37 -07:00
fastreplay mononoke: Remove lfs rollout tier 2021-08-26 09:22:28 -07:00
filenodes Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
filestore Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
git Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
gotham_ext Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
hgcli Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
hgproto Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
hook_tailer Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
hooks Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
lfs_import Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
lfs_import_lib Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
lfs_protocol Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
lfs_server Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
manifest Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
megarepo_api Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
mercurial Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
metaconfig mononoke: Remove lfs rollout tier 2021-08-26 09:22:28 -07:00
microwave Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
mononoke_api mononoke: fix handling of mutable renames in fastlog 2021-08-27 05:58:31 -07:00
mononoke_api_hg Endpoint for fetching snapshot info 2021-08-26 07:24:37 -07:00
mononoke_hg_sync_job Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
mononoke_types Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
mutable_counters Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
mutable_renames mononoke: fix handling of mutable renames in fastlog 2021-08-27 05:58:31 -07:00
newfilenodes Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
observability Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
permission_checker mononoke: don't fail if too many commits were pushed by hg sync job 2021-08-25 13:55:48 -07:00
phases Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
pushrebase Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
pushrebase_mutation_mapping Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
quiet_stream Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
rate_limiting Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
reachabilityindex Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
regenerate_hg_filenodes Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
repo_attributes Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
repo_client mononoke: Remove lfs rollout tier 2021-08-26 09:22:28 -07:00
repo_factory Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
repo_import Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
revset Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
scs Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
scs_server Upload snapshot to ephemeral blobstore 2021-08-24 09:02:26 -07:00
segmented_changelog Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
server mononoke: Remove lfs rollout tier 2021-08-26 09:22:28 -07:00
sshrelay Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
statistics_collector Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
streaming_clone Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
tests manifest: remove left vs right store during tree diff 2021-08-25 23:32:57 -07:00
time_window_counter Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
tunables mononoke: fix handling of mutable renames in fastlog 2021-08-27 05:58:31 -07:00
unbundle_replay Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
upload_globalrevs Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
walker Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -07:00
Cargo.toml Daily common/rust/cargo_from_buck/bin/autocargo 2021-08-25 03:07:04 -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