##// END OF EJS Templates
delta: reuse _findsnapshot call from previous stage...
delta: reuse _findsnapshot call from previous stage Two different stage of the sparse-revlog logic needs the _findsnapshot data. To avoid recomputing it twice, make it possible to reuse the first computation in the second step. example affected manifest write before: 0.067141s after: 0.064252s (-5%) (total gain since start of series: 95%)

File last commit:

r41084:ef54bd33 default
r41142:3e1960e2 default
Show More
lib.rs
27 lines | 892 B | application/rls-services+xml | RustLexer
Georges Racinet
rust: pure Rust lazyancestors iterator...
r40307 // 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.
mod ancestors;
Georges Racinet
rust: core implementation for lazyancestors...
r41084 pub use ancestors::{AncestorsIterator, LazyAncestors, MissingAncestors};
Georges Racinet
rust: pure Rust lazyancestors iterator...
r40307
/// Mercurial revision numbers
///
/// As noted in revlog.c, revision numbers are actually encoded in
/// 4 bytes, and are liberally converted to ints, whence the i32
pub type Revision = i32;
pub const NULL_REVISION: Revision = -1;
/// The simplest expression of what we need of Mercurial DAGs.
pub trait Graph {
Georges Racinet
rust: translation of missingancestors...
r40995 /// Return the two parents of the given `Revision`.
///
/// Each of the parents can be independently `NULL_REVISION`
Georges Racinet
rust: changed Graph.parents to return [Revision; 2]...
r40969 fn parents(&self, Revision) -> Result<[Revision; 2], GraphError>;
Georges Racinet
rust: pure Rust lazyancestors iterator...
r40307 }
#[derive(Clone, Debug, PartialEq)]
pub enum GraphError {
ParentOutOfRange(Revision),
}