sapling/lib
Jun Wu 47a4b0a347 indexedlog: make it possible to clone Index without dirty parts
Summary:
This will be used in a later change.

I found ChecksumTable::clone crash when the file is empty. That was fixed as
part of the change.

Reviewed By: sfilipco

Differential Revision: D17379311

fbshipit-source-id: 0e43e8559f0628008e10f1e619a0523474c4094f
2019-09-13 19:31:04 -07:00
..
asyncrevisionstore/src revisionstore: MutableDeltaStore now accept &self 2019-09-11 10:24:59 -07:00
blackbox replace std::sync{Mutex, RwLock, Condvar} with parking_lot 2019-09-13 15:16:57 -07:00
bookmarkstore Delete extern crate lines 2019-09-11 22:02:16 -07:00
cdatapack fix a warning about an ignored const keyword 2019-08-05 12:10:41 -07:00
clib Started Eden for Windows and integrated hg store with it. 2018-08-21 17:51:26 -07:00
clidispatch dispatch: change 'no repository found' message 2019-09-10 18:29:50 -07:00
cliparser clidispatch: support explicitly named arguments in define_flags! 2019-08-28 19:26:28 -07:00
commitcloudsubscriber Delete extern crate lines 2019-09-11 22:02:16 -07:00
commitstore/bench-serialize commitstore/bench-serialize: add benchmark for mincode 2019-09-06 13:13:49 -07:00
configparser replace std::sync{Mutex, RwLock, Condvar} with parking_lot 2019-09-13 15:16:57 -07:00
cpython-ext Delete extern crate lines 2019-09-11 22:02:16 -07:00
cpython-failure Delete extern crate lines 2019-09-11 22:02:16 -07:00
dag dag: disallow Deref from SyncableDag to Dag 2019-09-13 19:31:03 -07:00
drawdag drawdag: implement a Rust drawdag library 2019-05-03 13:35:40 -07:00
edenapi edenapi: remove unecessary tokio dependency 2019-09-13 15:16:57 -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 Delete lines of the form "use [a-z_]+;" 2019-09-10 15:06:37 -07:00
indexedlog indexedlog: make it possible to clone Index without dirty parts 2019-09-13 19:31:04 -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 replace std::sync{Mutex, RwLock, Condvar} with parking_lot 2019-09-13 15:16:57 -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 Delete extern crate lines 2019-09-11 22:02:16 -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 replace std::sync{Mutex, RwLock, Condvar} with parking_lot 2019-09-13 15:16:57 -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 Delete lines of the form "use [a-z_]+;" 2019-09-10 15:06:37 -07:00
util util: add a function to get absolute path without resolving symlinks 2019-08-21 17:59:50 -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
zstdelta Delete extern crate lines 2019-09-11 22:02:16 -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).