This is orthogonal to behaviour for rendering paths from the beginning of time for branches created
before the first commit, and helps frame the history in a better way.
This further simplifies handling of merges, which was made correct in commit 675e79c. We now
correctly set both source and destination commit references, where an empty source reference means
the base of the branch being merged into.
This commit contains a few minor fixes to documentation and function names, for clarity, and adds a
`textLength` attribute to `<text>` elements in labels, thereby ensuring that the text is contained
within the label.
Fixes#1
The primary branch (`master` or whichever other branch is the primary) has now
an automatic merge path that leads to the beginning of time, much like branches
that have been created before the first commit.
The font pitch is also fixed to half the height, as is usually the case with
monospace fonts.
Graphs are now drawn vertically, from top-to-bottom, which simplifies
the drawing algorithm in the case where commit titles, branch names and
tags have to be drawn.
This version has support for adding commits on a single branch using
`git commit`, and enough scaffolding for adding additional commands and
accompanying tests easily.