mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
0a045becd1
Summary: Similar to the previous change, add context for Log APIs. This shows error context that might replace backtrace. For example, run: cargo test --test low_fileno_limit -- --nocapture An example error looks like: "/tmp/.tmpjrsfQt/rotatelog/1/index-key1": cannot duplicate file descriptor in ChecksumTable::try_clone in Index::try_clone Index.path = "/tmp/.tmpjrsfQt/rotatelog/1/index-key1" in Log::sync Log.dir = Some("/tmp/.tmpjrsfQt/rotatelog/1") Caused by 1 errors: - Os { code: 24, kind: Other, message: "Too many open files" } (Ignoring whitespace will make this diff much easier to review) Reviewed By: xavierd Differential Revision: D17732124 fbshipit-source-id: b0d500652d80b4a4755453c69bc05d467ecbdf90 |
||
---|---|---|
.. | ||
asyncrevisionstore/src | ||
blackbox | ||
bookmarkstore | ||
cdatapack | ||
clib | ||
clidispatch | ||
cliparser | ||
commitcloudsubscriber | ||
commitstore/bench-serialize | ||
configparser | ||
cpython-ext | ||
cpython-failure | ||
dag | ||
drawdag | ||
edenapi | ||
encoding | ||
hg_watchman_client | ||
hgcommands | ||
indexedlog | ||
linelog | ||
lz4-pyframe | ||
manifest | ||
mincode | ||
minibench | ||
mpatch | ||
mpatch-sys | ||
mutationstore | ||
nodemap | ||
pathmatcher | ||
procinfo | ||
radixbuf | ||
revisionstore | ||
stackdesc | ||
third-party | ||
treestate | ||
types | ||
util | ||
vlqencoding | ||
watchman_client | ||
workingcopy | ||
xdiff | ||
xdiff-sys | ||
zstdelta | ||
CMakeLists.txt | ||
README.md |
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).