sapling/eden/scm/lib
Jun Wu c6ed3839cd io: support nested progress disabling
Summary:
With the mix of external pager and progress suspension, the progress might
be enabled by accident:

    # pager: disable forever
    disable_progress(True)
    # suspension
    with progress.suspend()
        ...
        # on __exit__, re-enables pager

Update the pager disabling logic be nested to avoid the potential issue.

Reviewed By: andll

Differential Revision: D27275016

fbshipit-source-id: 35ca7aef1890a981e6a1f0e5313b6a482ed43368
2021-03-25 16:54:49 -07:00
..
async-runtime async-runtime: add spawn_blocking function 2021-03-17 19:23:00 -07:00
auth autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
backingstore eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
blackbox eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
bookmarkstore eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
checkout checkout: switch to Bytes::to_vec since it is fixed now 2021-03-12 09:04:04 -08:00
clib Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
clidispatch clidispatch: expose global options from Dispatcher 2021-03-23 23:31:10 -07:00
cliparser third-party/rust: update tokio & tokio-stream 2021-03-10 11:01:28 -08:00
commitcloudsubscriber eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
configparser fix rust warnings 2021-03-22 11:47:55 -07:00
cpython-async third-party/rust: update tokio & tokio-stream 2021-03-10 11:01:28 -08:00
cpython-ext eden/scm/lib: default to python3-sys 2021-03-23 01:13:08 -07:00
dag dag: move MultiLog OpenOptions to a DefaultOpenOptions 2021-03-15 18:45:07 -07:00
dev-logger eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
drawdag autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
edenapi newstore: introduce new StoreFile type with strongly-typed redaction, LFS Pointers, and copy-header support 2021-03-24 12:53:01 -07:00
edenfs-client eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
encoding eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
fsinfo eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
fsyncglob eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
hg-http http-client: allow on_new_request to configure Request 2021-03-23 23:31:10 -07:00
hg-metrics eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
hgcommands scmstore: rename newstore to scmstore 2021-03-24 12:53:01 -07:00
hgcommits streams: increase commit text batch size to 10k 2021-03-12 11:39:09 -08:00
hgtime eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
http-client http-client: allow on_new_request to configure Request 2021-03-23 23:31:10 -07:00
indexedlog indexedlog: be compatible with MultiLog changes written by older software (2) 2021-03-23 10:57:27 -07:00
io io: support nested progress disabling 2021-03-25 16:54:49 -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 eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
metalog eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
mincode eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
minibench autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
minibytes minibytes: into_vec cannot use fast path if the vec is sliced 2021-03-10 17:16:53 -08: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 eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08: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 eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
procinfo eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
progress hgcommands: drop indicatif progress bar 2021-03-12 11:39:10 -08: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 scmstore: introduce new StoreTree type for basic type-safe handling of trees 2021-03-25 01:16:49 -07:00
revlogindex vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
spawn-ext eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
streams third-party/rust: update tokio & tokio-stream 2021-03-10 11:01:28 -08: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 mman-win32: remove 2020-10-02 10:47:24 -07:00
thrift-types thrift/rust: pass service_name and fn_name to call() on clients 2021-03-18 10:19:40 -07:00
tracing-analyzer autocargo v1: changes to how thrift-related generation is done to match v2 2021-02-23 11:38:45 -08:00
tracing-collector fix rust warnings 2021-03-22 11:47:55 -07:00
tracing-runtime-callsite tracing-runtime-callsite: fix a potential deadlock 2021-03-17 08:30:27 -07:00
treestate eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
types types: update HgId to use "bytes" serialization by default 2021-02-24 09:20:35 -08:00
util clidispatch: split dispatch() method 2021-03-12 11:39:09 -08:00
version configparser: fix non-fb dependencies (#45) 2020-08-26 16:31:00 -07:00
vfs vfs: add a few Debug derives 2021-03-11 10:07:04 -08: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 eden/scm/lib: autogenerate all Cargo.toml files with autocargo 2021-03-05 04:29:49 -08:00
zstore autocargo v1: changes to how thrift-related generation is done to match v2 2021-02-23 11:38:45 -08: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).