sapling/lib
Jun Wu 277d25b581 indexedlog: move checksum_type to OpenOptions
Summary:
The motivation of this is, LogRotate might copy dirty (non-flushed) entries
from one Log to another, and it cannot preserve the checksum type for those
entries. There are 2 solutions:

- Make `iter_dirty` return checksum type.
- Make checksum type known by Log directly.

The second choice provides a simpler public API. `append_advanced` can be
removed, then `iter_dirty` is still consistent with `iter`. Therefore this
change.

Differential Revision: D14688174

fbshipit-source-id: 09e07d64c886a5ce9bc48dce8e29d036af1c0381
2019-04-01 17:16:16 -07:00
..
argparse codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
asyncpacks/src asyncpacks: make the Metadata mandatory when adding to a asyncdatapack 2019-03-19 16:24:50 -07:00
bookmarkstore indexedlog: make Log::flush return the new file size 2019-04-01 17:16:15 -07:00
cdatapack hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
clib Started Eden for Windows and integrated hg store with it. 2018-08-21 17:51:26 -07:00
commitcloudsubscriber commitcloudsubscriber: updates tests.rs 2019-03-20 19:56:14 -07:00
configparser configparser: avoid environment race in configparser tests 2019-03-26 07:33:23 -07:00
cpython-ext revisionstore: use Bytes instead of Box<[u8]> in Delta and DataEntry 2019-01-22 14:03:17 -08:00
cpython-failure cpython-failure: Integrate cpython PyResult with the failure crate 2018-12-14 06:43:40 -08:00
edenapi revisionstore: add convenience function to add many entries to a historypack 2019-03-27 12:38:39 -07:00
encoding encoding: use Cow for returned types that may be references 2018-10-30 04:07:02 -07:00
hg_watchman_client watchman_client: use Fallible 2019-01-15 03:50:47 -08:00
hgpython codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
indexedlog indexedlog: move checksum_type to OpenOptions 2019-04-01 17:16:16 -07:00
linelog linelog: update README 2018-11-08 12:34:36 -08:00
lz4-pyframe revisionstore: use Bytes instead of Box<[u8]> in Delta and DataEntry 2019-01-22 14:03:17 -08:00
manifest manifest: Fix skip_subtree on Leaf 2019-04-01 11:51:16 -07:00
minibench indexedlog: add more benchmarks 2018-12-06 14:57:52 -08:00
mpatch codemod: use explicit versions in Cargo.toml 2018-11-15 18:54:06 -08:00
mpatch-sys codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mutationstore indexedlog: make IndexDef clone-able 2019-03-30 08:59:13 -07:00
nodemap indexedlog: make Log::flush return the new file size 2019-04-01 17:16:15 -07:00
pathmatcher codemod: use explicit versions in Cargo.toml 2018-11-15 18:54:06 -08:00
radixbuf indexedlog: normalize benchmarks to use 204800 entries 2019-03-27 16:29:58 -07:00
revisionstore revisionstore: add convenience function to add many entries to a historypack 2019-03-27 12:38:39 -07:00
third-party xdiff: backport upstream changes 2018-04-13 21:51:48 -07:00
treestate Update itertools version in lib/treestate 2019-02-08 11:49:54 -08:00
types types: fix typo in test name 2019-03-27 12:52:21 -07:00
url-ext url-ext: add url-ext crate 2019-01-30 18:30:49 -08:00
vlqencoding vlqencoding: don't require Sized for Read or Write traits 2018-10-29 04:10:46 -07:00
watchman_client watchman_client: fix windows build 2019-02-22 10:22:30 -08:00
zstdelta Revert D13575719: [tp2] Update zstd to 1.3.8 as 1.3.x 2019-01-23 18:19:13 -08:00
Cargo.toml types: move edenapi-types into types crate 2019-02-15 22:51:04 -08: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).