##// END OF EJS Templates
dirstate: remove need_delay logic...
dirstate: remove need_delay logic Now that all¹ stored mtime are non ambiguous, we no longer need to apply the `need_delay` step. The need delay logic was not great are mtime gathered during longer operation could be ambiguous but younger than the `dirstate.write` call time. So, we don't need that logic anymore and can drop it This make the code much simpler. The code related to the test extension faking the dirstate write is now obsolete and associated test will be migrated as follow up. They currently do not break. [1] except the ones from `hg update`, but `need_delay` no longer help for them either. Differential Revision: https://phab.mercurial-scm.org/D11796

File last commit:

r48832:11943945 default
r49221:434de129 default
Show More
lib.rs
70 lines | 2.1 KiB | application/rls-services+xml | RustLexer
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 // lib.rs
//
// Copyright 2018 Georges Racinet <gracinet@anybox.fr>
//
// This software may be used and distributed according to the terms of the
// GNU General Public License version 2 or any later version.
//! Python bindings of `hg-core` objects using the `cpython` crate.
//! Once compiled, the resulting single shared library object can be placed in
//! the `mercurial` package directly as `rustext.so` or `rustext.dll`.
//! It holds several modules, so that from the point of view of Python,
//! it behaves as the `cext` package.
//!
//! Example:
Georges Racinet
rust-cpython: rustdoc improvements...
r41220 //!
//! ```text
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 //! >>> from mercurial.rustext import ancestor
//! >>> ancestor.__doc__
//! 'Generic DAG ancestor algorithms - Rust implementation'
//! ```
Raphaël Gomès
rust: switch hg-core and hg-cpython to rust 2018 edition...
r42828 /// This crate uses nested private macros, `extern crate` is still needed in
/// 2018 edition.
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 #[macro_use]
extern crate cpython;
Georges Racinet
rust-cpython: rustdoc improvements...
r41220 pub mod ancestors;
Georges Racinet
rust-cpython: implement Graph using C parents function...
r41082 mod cindex;
Georges Racinet
rust-cpython: moved generic conversion fn out of ancestors module...
r41276 mod conversion;
Raphaël Gomès
rust-cpython: add macro for sharing references...
r42997 #[macro_use]
pub mod ref_sharing;
copies: introduce the hg-cpython wrapper for `combine_changeset_copies`...
r46557 pub mod copy_tracing;
Georges Racinet
rust-cpython: binding for headrevs()...
r41843 pub mod dagops;
Raphaël Gomès
rust-cpython: add `debug` module to expose debug information to Python...
r45018 pub mod debug;
Raphaël Gomès
rust: run rfmt on all hg-core/hg-cpython code...
r42760 pub mod dirstate;
Georges Racinet
rust-discovery: cpython bindings for the core logic...
r42356 pub mod discovery;
Georges Racinet
rust-cpython: rustdoc improvements...
r41220 pub mod exceptions;
Simon Sapin
rust: Move PyBytesWithData out of copy-tracing code...
r48765 mod pybytes_deref;
rust-index: add a function to convert PyObject index for hg-core...
r44398 pub mod revlog;
Raphaël Gomès
rust-utils: introduce a debug util to print the python stack trace...
r43545 pub mod utils;
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001
py_module_initializer!(rustext, initrustext, PyInit_rustext, |py, m| {
m.add(
py,
"__doc__",
"Mercurial core concepts - Rust implementation",
)?;
let dotted_name: String = m.get(py, "__name__")?.extract(py)?;
m.add(py, "ancestor", ancestors::init_module(py, &dotted_name)?)?;
Georges Racinet
rust-cpython: binding for headrevs()...
r41843 m.add(py, "dagop", dagops::init_module(py, &dotted_name)?)?;
Raphaël Gomès
rust-cpython: add `debug` module to expose debug information to Python...
r45018 m.add(py, "debug", debug::init_module(py, &dotted_name)?)?;
copies: introduce the hg-cpython wrapper for `combine_changeset_copies`...
r46557 m.add(
py,
"copy_tracing",
copy_tracing::init_module(py, &dotted_name)?,
)?;
Georges Racinet
rust-discovery: cpython bindings for the core logic...
r42356 m.add(py, "discovery", discovery::init_module(py, &dotted_name)?)?;
Raphaël Gomès
rust-dirstate: add rust-cpython bindings to the new parse/pack functions...
r42489 m.add(py, "dirstate", dirstate::init_module(py, &dotted_name)?)?;
Georges Racinet
rust-index: add a struct wrapping the C index...
r44413 m.add(py, "revlog", revlog::init_module(py, &dotted_name)?)?;
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 m.add(py, "GraphError", py.get_type::<exceptions::GraphError>())?;
Ok(())
});
Yuya Nishihara
rust-cpython: prepare for writing tests that require libpython...
r43583
#[cfg(not(any(feature = "python27-bin", feature = "python3-bin")))]
#[test]
#[ignore]
fn libpython_must_be_linked_to_run_tests() {
// stub function to tell that some tests wouldn't run
}