2017-01-12 23:06:23 +00:00
# Grawkit - The Awksome Git Graph Generator [![MIT License][license-svg]][license-url]
2016-10-30 23:17:54 +00:00
Grawkit is a tool that helps build SVG graphs from git command-line descriptions, and is built in Awk.
2017-01-12 23:06:23 +00:00
This tool was created in support of the ["Orthogonal Git Workflow"][orthogonal-git] post. Yes, this took way longer to write than the post itself.
2016-10-30 23:17:54 +00:00
## 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.
2016-12-28 22:25:07 +00:00
## 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:
< table >
< tr >
2016-12-28 22:33:00 +00:00
< th width = "40%" > Command-Line< / th >
2016-12-28 22:25:07 +00:00
< th > Generated Graph< / th >
< / tr >
< tr >
< th > < pre > < code > git commit -m "Adding a new commit"
git commit< / code > < / pre > < / th >
2017-01-12 22:36:08 +00:00
< th > < img src = "https://rawgit.com/deuill/grawkit/b5708197cfcc526498053f9a07565a2d77615054/tests/02-master.svg" alt = "" > < / th >
2016-12-28 22:25:07 +00:00
< / tr >
< tr >
< th > < pre > < code > 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< / code > < / pre > < / th >
2017-01-12 22:36:08 +00:00
< th > < img src = "https://rawgit.com/deuill/grawkit/b5708197cfcc526498053f9a07565a2d77615054/tests/03-branch.svg" alt = "" > < / th >
2016-12-28 22:25:07 +00:00
< / tr >
< tr >
2016-12-31 18:19:50 +00:00
< th > < pre > < code > git branch test-merging
2016-12-28 22:25:07 +00:00
2016-12-31 18:19:50 +00:00
git commit -m "Commit on master"
2016-12-28 22:25:07 +00:00
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< / code > < / pre > < / th >
2017-01-12 22:36:08 +00:00
< th > < img src = "https://rawgit.com/deuill/grawkit/b5708197cfcc526498053f9a07565a2d77615054/tests/04-merge.svg" alt = "" > < / th >
2016-12-28 22:25:07 +00:00
< / tr >
< tr >
< th > < pre > < code > 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
2016-12-31 18:19:50 +00:00
git branch test-third
2016-12-28 22:25:07 +00:00
git checkout test-second
git commit
git merge test-first
git tag v.2.0.0-rc1
git checkout master
2016-12-31 18:19:50 +00:00
git merge test-second
git checkout test-third
git commit< / code > < / pre > < / th >
2017-01-12 22:36:08 +00:00
< th > < img src = "https://rawgit.com/deuill/grawkit/b5708197cfcc526498053f9a07565a2d77615054/tests/05-multi-branch.svg" alt = "" > < / th >
2016-12-31 18:19:50 +00:00
< / tr >
< tr >
< th > < pre > < code > 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< / code > < / pre > < / th >
2017-01-12 22:36:08 +00:00
< th > < img src = "https://rawgit.com/deuill/grawkit/b5708197cfcc526498053f9a07565a2d77615054/tests/06-feature-branch.svg" alt = "" > < / th >
2016-12-28 22:25:07 +00:00
< / tr >
< / table >
2016-10-30 23:17:54 +00:00
## 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.
2017-01-12 23:06:23 +00:00
[orthogonal-git]: https://deuill.org/post/orthogonal-git-workflow/
2016-10-30 23:17:54 +00:00
[license-url]: https://github.com/deuill/grawkit/blob/master/LICENSE
[license-svg]: https://img.shields.io/badge/license-MIT-blue.svg