Grawkit - The Awksome Git Graph Generator
Grawkit is a tool that helps build SVG graphs from git command-line descriptions, and is built in Awk.
This tool was created in support of the "Orthogonal Git Workflow" post. Yes, this took way longer to write than the post itself.
Testing & Documentation
A Makefile
is provided for running tests and producing documentation for Grawkit. Run make help
in the project root for more information.
A full test-suite is provided (depending only on make
and awk
), which should serve as a good example of the existing feature-set.
Status & Examples
Grawkit has basic support for common git
commands such as git branch
, git tag
and git merge
, allowing for fairly complex graphs. The integrated test-suite serves as an example, presented here:
Command-Line |
Generated Graph |
git commit -m "Adding a new commit"
git commit
|
|
git commit -m "Commit on master"
git commit -m "More stuff"
git branch test-stuff
git checkout test-stuff
git commit -m 'Testing stuff'
git commit
git checkout master
git commit
|
|
git branch test-merging
git commit -m "Commit on master"
git commit -m "Still on master"
git checkout test-merging
git commit -m 'A sample commit'
git checkout master
git commit -m "Another master commit"
git merge test-merging
|
|
git commit -m "Commit on master"
git branch test-first
git branch test-second
git commit -m "Still on master"
git tag v.1.0.0
git checkout test-first
git commit
git branch test-third
git checkout test-second
git commit
git merge test-first
git tag v.2.0.0-rc1
git checkout master
git merge test-second
git checkout test-third
git commit
|
|
git branch develop
git checkout develop
git commit
git branch feature/XYZ-12_fix-foo
git checkout feature/XYZ-12_fix-foo
git commit
git commit
git checkout develop
git branch feature/ZZ-704_take-it-to-the-limit
git checkout feature/ZZ-704_take-it-to-the-limit
git commit
git checkout develop
git merge feature/XYZ-12_fix-foo
git branch feature/ABC-66_make-bar
git checkout feature/ABC-66_make-bar
git commit
git commit
git checkout develop
git merge feature/ZZ-704_take-it-to-the-limit
|
|
License
All code in this repository is covered by the terms of the MIT License, the full text of which can be found in the LICENSE file.