#version-control #graph #revision #function #computation #testing #command

bin+lib vcsgraph

A library to perform various computation of a version control graph

2 unstable releases

0.2.0 Dec 21, 2021
0.1.0 Oct 7, 2021

#290 in Science

Download history 294/week @ 2023-12-18 46/week @ 2023-12-25 155/week @ 2024-01-01 200/week @ 2024-01-08 223/week @ 2024-01-15 394/week @ 2024-01-22 223/week @ 2024-01-29 234/week @ 2024-02-05 357/week @ 2024-02-12 622/week @ 2024-02-19 447/week @ 2024-02-26 248/week @ 2024-03-04 316/week @ 2024-03-11 317/week @ 2024-03-18 396/week @ 2024-03-25 376/week @ 2024-04-01

1,431 downloads per month


2.5K SLoC


This repository contains the sources of the vcsgraph project, a Rust implementation of some revision graph manipulation functions.


This project targets Rust 1.48.0 for compatibility with most current Linux distributions.

The code needs to be properly formatted by using:

$ cargo fmt



For testing and evaluation purposes, some functions from this library are accessible through command line utilities shipped when the "cli" feature flag is present. Exposed functions can be listed by running:

$ cargo run --features cli --bin testing -- --help
$ cargo run --features cli --bin analytics -- --help


It's possible to empirically evaluate the performance impact of changesets by adapting and running the following snippet, which compares the running time of some subcommand of two revisions on some reference graph from the vcsgraph-reference repository:

./utils/benchmark.sh ../vcsgraph-reference/graph/mercurial-2018-08-01-b2561d4a.graph

You will need the hyperfine benchmarking tool for this.


~26K SLoC