Lignum

Posted on in software with tags git, rust.

A source code repository visualiser with a 1,000’ view.

I wasn’t satisfied with the state of Git repository visualisers. I found they love to show you every last commit. When your repo is more than trivial, this is not useful for getting the big-picture.

Mine is different: it focusses on the macroscopic structure. Which are the active branches, where are the tags, where are the divergence and merge points?

In my first software job out of college – back when dinosaurs roamed the earth and CVS was the height of version control – we often ended up drawing what we termed railway diagrams on the whiteboard to visualise the structure. This is my attempt to automate creating these.

Features

  • Output in GraphViz dot format
  • Revision of interest filtering, with wildcards
  • Options to include all local branches (default), remotes, tags and root (parentless) commits
  • Edges are annotated with their size in commits (broadly the number on the direct line from A to B, though merge commits give different results)

Getting started

This is a Rust command-line application.

cargo install --locked lignum, or get it from the source repository.

Run lignum in a directory that contains a git repository, or give it --repo <path>. If you have xdot installed, the -x option will pipe the output directly to xdot.

Check the --help message for more.