sapling/eden/scm/lib
Durham Goode 7e76b7dc29 memcache: don't use memcache for short commands in scmstore
Summary:
The memcache client takes 2 seconds to set up, so let's not use it for
short commands.

Reviewed By: quark-zju

Differential Revision: D29627229

fbshipit-source-id: bbefcd362e215a3b0f8a0f07c39b7ef00c71379e
2021-07-16 17:11:50 -07:00
..
async-runtime third-party/rust: update Tokio to 1.7.1 2021-06-25 06:17:41 -07:00
auth third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
backingstore backingstore: enable rust trace logging in edenfs 2021-07-09 22:31:30 -07:00
blackbox Update several rust crate versions 2021-06-17 16:38:19 -07:00
bookmarkstore eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
checkout checkout: fix issue with symlink=>directory replacement 2021-07-07 14:23:40 -07:00
clidispatch lib: remove most rustc warnings 2021-07-01 18:08:55 -07:00
clientinfo Update several rust crate versions 2021-06-17 16:38:19 -07:00
cliparser third-party/rust: update tokio & tokio-stream 2021-03-10 11:01:28 -08:00
commitcloudsubscriber Update several rust crate versions 2021-06-17 16:38:19 -07:00
configmodel configmodel: impl Config on BTreeMap<String, String> 2021-06-13 09:19:22 -07:00
configparser dynamicconfig: read .hg/reponame as repo name fallback 2021-06-28 12:25:17 -07:00
cpython-async third-party/rust: update Tokio to 1.7.1 2021-06-25 06:17:41 -07:00
cpython-ext cpython-ext: rename pycell to PyCell 2021-07-06 13:16:10 -07:00
dag dag-types: introduce CloneData::convert_vertex 2021-07-01 10:49:01 -07:00
dev-logger third-party: update tracing-subscriber from 0.2.15 to 0.2.17 2021-04-12 19:24:10 -07:00
drawdag autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
eagerepo edeapi: clean up usage of callback or progress in the new code. 2021-07-15 06:31:42 -07:00
edenapi Add types for /ephemeral/prepare call 2021-07-15 09:22:38 -07:00
edenfs-client third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
encoding eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
fsinfo lib: remove #![deny(warnings)] 2021-04-21 12:24:47 -07:00
fsyncglob eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
hg-http send additional data identifying client 2021-06-07 06:38:37 -07:00
hg-metrics eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
hgcommands revisionstore: unify "store type" (local vs. shared/cache) enums 2021-07-13 15:17:30 -07:00
hgcommits hgcommits: add a way to inject failure on resolving ids remotely 2021-06-28 14:36:39 -07:00
hgtime third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
hostcaps Update several rust crate versions 2021-06-17 16:38:19 -07:00
http-client third-party/rust: update Tokio to 1.7.1 2021-06-25 06:17:41 -07:00
indexedlog indexedlog: resolve a warning 2021-06-24 15:12:58 -07:00
io io: do not allocate stderr stream if it's mixed to stdout 2021-07-06 19:06:20 -07:00
linelog Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
lz4-pyframe autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
manifest eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
manifest-tree thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
metalog Update several rust crate versions 2021-06-17 16:38:19 -07:00
mincode Update several rust crate versions 2021-06-17 16:38:19 -07:00
minibench autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
minibytes Update several rust crate versions 2021-06-17 16:38:19 -07:00
mpatch eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
mpatch-sys eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
mutationstore mutationstore: fix tests 2021-06-28 12:21:26 -07:00
nodemap eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
nonblocking third-party/rust: update futures 2021-03-04 06:42:55 -08:00
pathmatcher update globset from 0.4.5 to 0.4.7 2021-06-15 15:47:49 -07:00
procinfo eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
progress third-party/rust: update Tokio to 1.7.1 2021-06-25 06:17:41 -07:00
radixbuf eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
renderdag eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
revisionstore memcache: don't use memcache for short commands in scmstore 2021-07-16 17:11:50 -07:00
revlogindex dag: add an API to obtain the master group 2021-06-28 12:50:26 -07:00
spawn-ext eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
status status: introduce status crate 2021-04-27 13:33:24 -07:00
streams third-party/rust: update Tokio to 1.7.1 2021-06-25 06:17:41 -07:00
taggederror eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
taggederror-util eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
third-party Enable fb dynamicconfig loading inside eden backingstore 2021-07-06 13:53:41 -07:00
thrift-types Resolve bare_trait_objects warnings in path components 2021-05-19 22:03:56 -07:00
tracing-analyzer Update several rust crate versions 2021-06-17 16:38:19 -07:00
tracing-collector tracing: fix recording on spans via TracingCollector layer 2021-07-15 21:19:27 -07:00
tracing-runtime-callsite pytracing: expose callsite.is_enabled() 2021-04-21 09:25:49 -07:00
treestate Update itertools 0.8.2 to 0.10.1 2021-06-22 04:09:00 -07:00
types scmstore: implement edenapi file aux data fetching in FileStore 2021-07-13 15:17:31 -07:00
util Fix rust lint errors 2021-06-24 15:54:45 -07:00
version configparser: fix non-fb dependencies (#45) 2020-08-26 16:31:00 -07:00
vfs vfs: fix linux detection 2021-07-13 16:49:38 -07:00
vlqencoding autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
workingcopy eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
xdiff autocargo v2: rollout and replace v1 in all use-cases 2021-03-02 06:43:29 -08:00
xdiff-sys autocargo v2: rollout and replace v1 in all use-cases 2021-03-02 06:43:29 -08:00
zstdelta rust: revert zstd crates 2021-06-11 04:39:54 -07:00
zstore Update several rust crate versions 2021-06-17 16:38:19 -07:00
CMakeLists.txt clib: remove buffer.[ch] 2020-10-02 10:47:23 -07:00
README.md Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
run_cargo_tests.py config: use Rust graph render as default 2020-10-19 17:07:30 -07:00

lib

Any native code (C/C++/Rust) that Mercurial (either core or extensions) depends on should go here. Python code, or native code that depends on Python code (e.g. #include <Python.h> or use cpython) is disallowed.

As we start to convert more of Mercurial into Rust, and write new paths entrirely in native code, we'll want to limit our dependency on Python, which is why this barrier exists.

See also hgext/extlib/README.md, mercurial/cext/README.mb.

How do I choose between lib and extlib (and cext)?

If your code is native and doesn't depend on Python (awesome!), it goes here.

Otherwise, put it in hgext/extlib (if it's only used by extensions) or mercurial/cext (if it's used by extensions or core).