sapling/eden/scm
Jun Wu 691bc90d13 context: make memctx mutable
Summary:
Add `memctx.__setitem__(path, fctx)` API to change a file in memctx. This will
be used in upcoming dirsync changes.

Regarding on `memctx` vs `overlayworkingctx`. Both need some changes to fit the
dirsync use-case (overlayworkingctx needs "amend", not "commit on top of",
memctx needs to be mutable).

The main difference is `overlayworkingctx` uses a concrete `cache` dict for
path, data, and metadata. `memctx` uses a concrete list of file paths, but file
data, metadata is abstracted - it uses a function that returns fctx. I would
like to preserve the laziness of reading files and metadata (especially for LFS),
so I picked the `memctx` instead of `overlayworkingctx` as the starting point.

Reviewed By: DurhamG

Differential Revision: D26726475

fbshipit-source-id: 7c16980ffa1c83fe0ff6d70c60b1daae5e266683
2021-03-02 11:05:21 -08:00
..
contrib Changing commit hash length to 9 in hg prompt 2021-02-10 17:07:35 -08:00
distutils_rust py3: fix simple Windows py3 issues 2021-02-11 09:50:25 -08:00
doc py3: fix test-help.t 2020-04-09 18:25:54 -07:00
edenscm context: make memctx mutable 2021-03-02 11:05:21 -08:00
edenscmnative checkout: wrap record_updates with allow_threads 2021-03-01 20:25:18 -08:00
exec clidispatch: add an API to obtain "writable" stdout stream 2021-02-23 15:09:14 -08: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 http-client: move streaming request report to report_result_and_drop_receiver 2021-03-02 10:40:08 -08:00
newdoc newdoc: add Segmented Changelog section 2021-01-19 21:00:13 -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 tests: fix test-unicode-inputs-t.py on Windows 2021-03-01 22:23:14 -08:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 commitcloud: optimize revset for segmented changelog backend 2020-08-21 13:00:45 -07:00
.gitignore run-tests: make output format friendly for adhoc scripts 2020-06-10 19:29:59 -07: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 Back out "use python 3 for the eden_scm getdeps build" 2020-09-15 17:37:50 -07:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup3.py Daily arc lint --take BLACK 2021-02-26 03:57:20 -08:00
setup.py revisionstore: bytes::ByteMut -> Vec::<u8> 2021-02-03 20:22:30 -08: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.