mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 09:48:05 +03:00
c32c89ffa4
Summary: This library parses an ASCII DAG. It is similar to mercurial/drawdag.py, which was added by me in [1]. There are some (intentional) differences from the Python drawdag: - Stricter. Confusing DAG characters like `+` or crossing lines are forbidden. - Do not special handle `o` as a name. - Do not try to be compatible with `hg log -G` output. - Do not support special comments (yet). - Support both left to right and bottom to top directions. This library tries to be abstract. i.e. it does not have actual logic about how to make a commit. Its intended users are Mononoke and scmdag, which have different ways to make commits. Since this is a library that is intended to be used only for tests. I didn't spend too much effort to optimize its performance. [1]: https://www.mercurial-scm.org/repo/hg/rev/a31634336471 Reviewed By: kulshrax Differential Revision: D15039768 fbshipit-source-id: 4c33d44759ecf59aadc3d443a84db07d702dc69b |
||
---|---|---|
.. | ||
argparse | ||
asyncrevisionstore/src | ||
bookmarkstore | ||
cdatapack | ||
clib | ||
commitcloudsubscriber | ||
configparser | ||
cpython-ext | ||
cpython-failure | ||
dag | ||
drawdag | ||
edenapi | ||
encoding | ||
hg_watchman_client | ||
hgpython | ||
indexedlog | ||
linelog | ||
lz4-pyframe | ||
manifest | ||
minibench | ||
mpatch | ||
mpatch-sys | ||
mutationstore | ||
nodemap | ||
pathmatcher | ||
radixbuf | ||
revisionstore | ||
third-party | ||
treestate | ||
types | ||
url-ext | ||
vlqencoding | ||
watchman_client | ||
zstdelta | ||
Cargo.toml | ||
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).