sapling/lib
Zeyi (Rice) Fan a045d9538d backingstore: add backingstore struct
Summary:
This diff adds a new crate `backingstore` that is responsible to help Eden to read data from hgcache.

This diff only implements the initialization logic where it loads the path from hg's configuration files. This diff also contains a struct `CFallible` to help us handling errors from Rust in C++.

Reviewed By: xavierd

Differential Revision: D17593226

fbshipit-source-id: 3dfa8b2b13553cf49ecadd2a589f0ce2e25524b5
2019-10-19 18:48:43 -07:00
..
asyncrevisionstore/src types: rename Node to HgId 2019-10-18 18:13:31 -07:00
backingstore backingstore: add backingstore struct 2019-10-19 18:48:43 -07:00
blackbox clienttelemetry: log peer name to blackbox 2019-10-09 06:19:44 -07:00
bookmarkstore types: rename Node to HgId 2019-10-18 18:13:31 -07:00
cdatapack fix a warning about an ignored const keyword 2019-08-05 12:10:41 -07:00
clib types: rename Node to HgId 2019-10-18 18:13:31 -07:00
clidispatch clidispatch: add config to set gid for indexedlog-created files 2019-10-10 19:53:51 -07:00
cliparser commands: add a command to run Python interpreter 2019-09-20 18:32:34 -07:00
commitcloudsubscriber commitcloudsubscriber: fix warnings 2019-09-20 15:49:00 -07:00
commitstore/bench-serialize commitstore/bench-serialize: add benchmark for mincode 2019-09-06 13:13:49 -07:00
configparser hg: make configparser buildable with cmake 2019-09-30 10:41:04 -07:00
cpython-ext hgcommands: print errors to io instead of stderr 2019-10-02 10:12:19 -07:00
cpython-failure Delete extern crate lines 2019-09-11 22:02:16 -07:00
dag indexedlog: migrate Log to use new Error type 2019-10-03 19:57:30 -07:00
drawdag drawdag: implement a Rust drawdag library 2019-05-03 13:35:40 -07:00
edenapi types: rename Node to HgId 2019-10-18 18:13:31 -07:00
encoding Delete extern crate lines 2019-09-11 22:02:16 -07:00
hg_watchman_client Delete extern crate lines 2019-09-11 22:02:16 -07:00
hgcommands types: rename Node to HgId 2019-10-18 18:13:31 -07:00
hgtime hgtime: parse a range 2019-10-08 11:11:02 -07:00
indexedlog indexedlog: hide test output unless VERBOSE is set 2019-10-11 13:29:24 -07:00
linelog linelog: update README 2018-11-08 12:34:36 -08:00
lz4-pyframe Delete extern crate lines 2019-09-11 22:02:16 -07:00
manifest types: rename Node to HgId 2019-10-18 18:13:31 -07:00
mincode Delete lines of the form "use [a-z_]+;" 2019-09-10 15:06:37 -07:00
minibench minibench: add a way to provide adhoc messages for measurement 2019-08-09 16:17:50 -07:00
mpatch Delete extern crate lines 2019-09-11 22:02:16 -07:00
mpatch-sys Delete extern crate lines 2019-09-11 22:02:16 -07:00
mutationstore Delete extern crate lines 2019-09-11 22:02:16 -07:00
nodemap nodemap: add nodeset structure 2019-09-23 17:11:23 -07:00
pathmatcher pathmatcher: add Matcher trait 2019-07-22 13:03:00 -07:00
procinfo procinfo: upgrade winapi to 0.3 2019-07-16 17:10:59 -07:00
radixbuf Delete extern crate lines 2019-09-11 22:02:16 -07:00
revisionstore types: rename Node to HgId 2019-10-18 18:13:31 -07:00
stackdesc stackdesc: a thin library to annotate the current thread execution 2019-08-01 19:53:56 -07:00
third-party mincode: initial boilerplate 2019-09-06 13:13:47 -07:00
treestate Delete extern crate lines 2019-09-11 22:02:16 -07:00
types types: rename Node to HgId 2019-10-18 18:13:31 -07:00
util util: add a create_dir function 2019-09-16 09:42:36 -07:00
vlqencoding Delete extern crate lines 2019-09-11 22:02:16 -07:00
watchman_client Delete extern crate lines 2019-09-11 22:02:16 -07:00
workingcopy Workingcopy: Remove matcher reference 2019-09-25 11:00:05 -07:00
xdiff xdiff: add a friendly wrapper for rust bindings (xdiff) 2019-09-26 11:01:09 -07:00
xdiff-sys xdiff: add rust bindings (xdiff-sys) 2019-09-26 11:01:09 -07:00
zstdelta Delete extern crate lines 2019-09-11 22:02:16 -07:00
CMakeLists.txt hg: make configparser buildable with cmake 2019-09-30 10:41:04 -07:00
README.md READMEs: tweaks based on feedback 2018-01-12 12:35:52 -08: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).