vcsgraph 0.2.0

A library to perform various computation of a version control graph
Documentation
# vcsgraph

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


## Contributing

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


## Testing

### CLI

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

### Benchmarking

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.

[vcsgraph-reference repository]: https://foss.heptapod.net/mercurial/vcsgraph-reference
[hyperfine]: https://github.com/sharkdp/hyperfine