##// END OF EJS Templates
packaging: isolate invocation of WiX to own function...
packaging: isolate invocation of WiX to own function Like we did for Inno, we want to split out the building of Mercurial from invoking the packaging tool so that we can introduce an alternate build mechanism. As part of this refactor, there are inconsequential changes to file layouts. Before, some shared files such as the WiX binaries and merge modules would be installed under build/. Now, they are installed under build/wix-*. This is to keep implementation simpler. But it also helps keep build state more isolated. Differential Revision: https://phab.mercurial-scm.org/D8474

File last commit:

r44643:9896a8d0 default
r45257:11bd68a9 default
Show More
revlog.rs
56 lines | 1.9 KiB | application/rls-services+xml | RustLexer
Georges Racinet
rust-core: extracted a revlog submodule...
r44457 // Copyright 2018-2020 Georges Racinet <georges.racinet@octobus.net>
// and Mercurial contributors
//
// This software may be used and distributed according to the terms of the
// GNU General Public License version 2 or any later version.
//! Mercurial concepts for handling revision history
Georges Racinet
rust-node: binary Node ID and conversion utilities...
r44601 pub mod node;
Georges Racinet
rust-nodemap: building blocks for nodetree structures...
r44600 pub mod nodemap;
Georges Racinet
rust-node: handling binary Node prefix...
r44643 pub use node::{Node, NodeError, NodePrefix, NodePrefixRef};
Georges Racinet
rust-nodemap: building blocks for nodetree structures...
r44600
Georges Racinet
rust-core: extracted a revlog submodule...
r44457 /// 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;
/// Marker expressing the absence of a parent
///
/// Independently of the actual representation, `NULL_REVISION` is guaranteed
Aay Jay Chan
rust-core: fix typo in comment...
r44547 /// to be smaller than all existing revisions.
Georges Racinet
rust-core: extracted a revlog submodule...
r44457 pub const NULL_REVISION: Revision = -1;
/// Same as `mercurial.node.wdirrev`
///
/// This is also equal to `i32::max_value()`, but it's better to spell
/// it out explicitely, same as in `mercurial.node`
pub const WORKING_DIRECTORY_REVISION: Revision = 0x7fffffff;
/// The simplest expression of what we need of Mercurial DAGs.
pub trait Graph {
/// Return the two parents of the given `Revision`.
///
/// Each of the parents can be independently `NULL_REVISION`
fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError>;
}
#[derive(Clone, Debug, PartialEq)]
pub enum GraphError {
ParentOutOfRange(Revision),
WorkingDirectoryUnsupported,
}
Georges Racinet
rust-revlog: a trait for the revlog index...
r44642
/// The Mercurial Revlog Index
///
/// This is currently limited to the minimal interface that is needed for
/// the [`nodemap`](nodemap/index.html) module
pub trait RevlogIndex {
/// Total number of Revisions referenced in this index
fn len(&self) -> usize;
/// Return a reference to the Node or `None` if rev is out of bounds
///
/// `NULL_REVISION` is not considered to be out of bounds.
fn node(&self, rev: Revision) -> Option<&Node>;
}