<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="https://www.chiark.greenend.org.uk/~ryounger/assets/feed.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Git on Ross Younger</title>
    <link>https://www.chiark.greenend.org.uk/~ryounger/tags/git/</link>
    <description>Recent content in Git on Ross Younger</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-UK</language>
    <lastBuildDate>Tue, 14 Jul 2026 16:24:56 +1200</lastBuildDate><atom:link href="https://www.chiark.greenend.org.uk/~ryounger/tags/git/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Lignum</title>
      <link>https://www.chiark.greenend.org.uk/~ryounger/2026/07/lignum/</link>
      <pubDate>Tue, 14 Jul 2026 16:24:56 +1200</pubDate>
      
      <guid>https://www.chiark.greenend.org.uk/~ryounger/2026/07/lignum/</guid>
      <description>&lt;p&gt;A source code repository visualiser with a 1,000&amp;rsquo; view.&lt;/p&gt;
&lt;p&gt;I wasn&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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?&lt;/p&gt;
&lt;p&gt;In my first software job out of college &amp;ndash; back when dinosaurs roamed the earth and &lt;a href=&#34;https://en.wikipedia.org/wiki/Concurrent_Versions_System&#34;&gt;CVS&lt;/a&gt; was the height of version control &amp;ndash; 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.&lt;/p&gt;
&lt;h2 id=&#34;features&#34;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Output in GraphViz &lt;code&gt;dot&lt;/code&gt; format&lt;/li&gt;
&lt;li&gt;Revision of interest filtering, with wildcards&lt;/li&gt;
&lt;li&gt;Options to include all local branches (default), remotes, tags and root (parentless) commits&lt;/li&gt;
&lt;li&gt;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)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;getting-started&#34;&gt;Getting started&lt;/h2&gt;
&lt;p&gt;This is a Rust command-line application.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cargo install --locked lignum&lt;/code&gt;, or get it from the &lt;a href=&#34;https://github.com/crazyscot/lignum&#34;&gt;source repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Run lignum in a directory that contains a git repository, or give it &lt;code&gt;--repo &amp;lt;path&amp;gt;&lt;/code&gt;.
If you have &lt;code&gt;xdot&lt;/code&gt; installed, the &lt;code&gt;-x&lt;/code&gt; option will pipe the output directly to xdot.&lt;/p&gt;
&lt;p&gt;Check the &lt;code&gt;--help&lt;/code&gt; message for more.&lt;/p&gt;</description>
      <enclosure url="https://www.chiark.greenend.org.uk/~ryounger/images/software/lignum.png" type="image" /></item>
    
  </channel>
</rss>