sapling/eden/scm
Jun Wu ac6c6cf3fa mutationstore: avoid excessive server lookups for lazy dag
Summary:
The mutationstore might contain lots of names (commit hashes) that are unknown
to the repo. When using a lazy changelog, by default, those names will be
looked up remotely, and most of the time the server just returns "name is outside
the graph".

We don't have negative cache to speed it up, because cache invalidation is
tricky - every lazy pull would in theory invalidate them.

To make things faster, let's just skip names in the mutationstore that are unknown
_locally_ without asking the server.

In theory this might affect correctness. Practically, this should only affect "landed as" markers,
because all drafts should be non-lazy. If the "landed as" correctness is an issue, we can fix
forward "landed as" later (ex. by writing down the public commit hash explicitly in
debugmarklanded).

Reviewed By: andll

Differential Revision: D29111710

fbshipit-source-id: 2c1b16a8140ca4f7195bf1206ffe1db4750185b9
2021-06-14 16:00:58 -07:00
..
contrib make: avoid fb python for make builds 2021-05-04 14:43:32 -07:00
distutils_rust distutils_rust: prefer lld as the linker 2021-04-27 10:30:48 -07:00
doc py3: fix test-help.t 2020-04-09 18:25:54 -07:00
edenscm py3: fix crecord for non-utf8 files 2021-06-11 11:33:15 -07:00
edenscmnative scmstore: update scmstore ExtractInnerRef types 2021-06-11 18:53:11 -07:00
exec lib: remove #![deny(warnings)] 2021-04-21 12:24:47 -07:00
hgcache_size_logger add hgcache size logger 2020-08-26 04:24:50 -07:00
i18n apply pyfmt with usort to opted-in sources 2020-11-10 21:25:54 -08:00
lib mutationstore: avoid excessive server lookups for lazy dag 2021-06-14 16:00:58 -07:00
newdoc notes: add 2019-10 Manifests, Past and Future 2021-03-04 08:52:27 -08:00
pystubs eden: make the EdenFS import helper use EdenAPI's /trees endpoint instead of /complete_trees 2021-02-22 14:23:40 -08:00
slides apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
tests configmodel: impl Config on BTreeMap<String, String> 2021-06-13 09:19:22 -07:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 debugrebuildchangelog: support rebuild with lazy segmented changelog 2021-05-26 19:00:01 -07:00
.gitignore gitignore: track Makefile under scm 2021-03-04 08:52:27 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
gen_version.py version: a Rust crate providing version information 2020-05-18 09:00:40 -07:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile getdeps: fix oss-eden_scm-darwin-getdeps 2021-06-10 14:24:25 -07:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup3.py setup: add IPython deps for Python 3 2021-06-11 16:20:51 -07:00
setup.py clindex: remove the extension 2021-06-10 20:28:27 -07:00

Mercurial
=========

Mercurial is a fast, easy to use, distributed revision control tool
for software developers.

Basic install::

 $ make            # see install targets
 $ make install    # do a system-wide install
 $ hg debuginstall # sanity-check setup
 $ hg              # see help

Running without installing::

 $ make local      # build for inplace usage
 $ ./hg --version  # should show the latest version

See https://mercurial-scm.org/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.