sapling/eden/scm
Eli Lipsitz e89cc2e5dc walker: abstract SingleWalker and MultiWalker behind Walker
Summary:
This diff adds a new `Walker` struct, which can contain either a `SingleWalker` or a `MultiWalker`. The concrete Walker implementations are hidden and are chosen by the `num_threads` parameter -- single-threaded walker if the thread count is 0, and multi-threaded walker otherwise. This maintains the logic in `pyworkingcopy`.

This change has the downside of adding additional trait bounds (`Send + Sync + 'static`) on the `Matcher` used, even if you only need a single-threaded walker. However, the next diff in this stack would require that anyway in the only place that doesn't already have that bound. Going forward, it seems like future uses of Matcher would also like to dynamically select between single and multi-threaded walkers, and thus would also need those trait bounds anyway.

Reviewed By: DurhamG

Differential Revision: D34251645

fbshipit-source-id: 1273a3f2da59dfe3f9fd165b2e0ab35477c37180
2022-02-17 08:37:19 -08:00
..
contrib checkcode: remove old-style class check 2022-01-20 10:21:48 -08:00
distutils_rust codemod: update license headers 2022-01-05 14:43:32 -08:00
doc codemod: update license headers 2022-01-05 14:43:32 -08:00
edenscm merge: remove checkunknown content check 2022-02-15 23:10:18 -08:00
edenscmnative walker: abstract SingleWalker and MultiWalker behind Walker 2022-02-17 08:37:19 -08:00
exec remove generated thrift code and fix external CI (#26) 2022-02-09 12:21:32 -08:00
hgcache_size_logger codemod: update license headers 2022-01-05 14:43:32 -08:00
i18n codemod: update license headers 2022-01-05 14:43:32 -08:00
lib walker: abstract SingleWalker and MultiWalker behind Walker 2022-02-17 08:37:19 -08:00
newdoc fix a couple of typos 2022-01-10 16:13:22 -08:00
pystubs codemod: update license headers 2022-01-05 14:43:32 -08:00
slides codemod: update license headers 2022-01-05 14:43:32 -08:00
tests merge: remove checkunknown content check 2022-02-15 23:10:18 -08: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 add github actions for EdenFS on linux and fix Eden SCM Mac build (#106) 2022-02-14 11:56:53 -08:00
.rustfmt.toml rustfmt: set group_imports to StdExternalCrate 2021-10-19 11:07:24 -07:00
Cargo.toml remove generated thrift code and fix external CI (#26) 2022-02-09 12:21:32 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
fsprobe.sh codemod: update license headers 2022-01-05 14:43:32 -08:00
gen_version.py Add annotations to eden 2022-02-14 12:17:43 -08:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile move autocargo up one level (#101) 2022-02-08 06:07:52 -08:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup.py add github actions for EdenFS on linux and fix Eden SCM Mac build (#106) 2022-02-14 11:56:53 -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.