##// END OF EJS Templates
templater: add subsetparents(rev, revset) function...
templater: add subsetparents(rev, revset) function Naming suggestions are welcome. And this could be flagged as an (ADVANCED) function since the primary use case is to draw a graph. This provides all data needed for drawing revisions graph filtered by revset, and allows us to implement a GUI graph viewer in some languages better than Python. A frontend grapher will be quite similar to our graphmod since subsetparents() just returns parent-child relations in the filtered sub graph. Frontend example: https://hg.sr.ht/~yuja/hgv/browse/default/core/hgchangesetgrapher.cpp However, the resulting graph will be simpler than the one "hg log -G" would generate because redundant edges are eliminated. This should be the same graph rendering strategy as TortoiseHg. This function could be implemented as a revset predicate, but that would mean the scanning state couldn't be cached and thus slow. Test cases are split to new file since test-template-functions.t is quite big and we'll need a new branchy repository anyway.

File last commit:

r45028:d880805d default
r45083:7cd5c096 default
Show More
Cargo.toml
39 lines | 756 B | application/toml | TOMLLexer
[package]
name = "hg-core"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
description = "Mercurial pure Rust core library, with no assumption on Python bindings (FFI)"
edition = "2018"
build = "build.rs"
[lib]
name = "hg"
[dependencies]
byteorder = "1.3.1"
hex = "0.4.0"
lazy_static = "1.3.0"
libc = { version = "0.2.66", optional = true }
memchr = "2.2.0"
rand = "0.6.5"
rand_pcg = "0.1.1"
rayon = "1.3.0"
regex = "1.1.0"
twox-hash = "1.5.0"
same-file = "1.0.6"
crossbeam = "0.7.3"
micro-timer = "0.1.2"
log = "0.4.8"
[dev-dependencies]
clap = "*"
memmap = "0.7.0"
pretty_assertions = "0.6.1"
tempfile = "3.1.0"
[build-dependencies]
cc = { version = "1.0.48", optional = true }
[features]
default = []
with-re2 = ["cc", "libc"]