This is meant to help visualize large and/or complicated development efforts, especially the patterns of merging and branching.
The main difference from standard history-viewing tools like gitk is this tool will "collapse" linear sequences of commits into a single edge, so you're left with the topology of roots, heads, and places where development split or merged.
- libgit2 and Pygit2 to process your repository.
- NetworkX for graph transformations.
- Graphviz and PyGraphviz for pretty pictures.
usage: gitree.py [-h] [-T FORMAT] [-p DIR | -r DIR] [-R R] [-c | -n]
[--abbrev N] [-t [S]]
outfile
optional arguments:
-h, --help show this help message and exit
output arguments:
outfile Output file name, REQUIRED. '-' for stdout
-T FORMAT Dot output format (default: guessed fromm outfile)
Git options:
-p DIR, --path DIR Starting path to look for repository (default: '.')
-r DIR, --repo DIR Exact path to Git repository
-R R, --remote R Include branches from R. May be repeated. (default:
origin)
Graph options:
-c, --compact Compact basic blocks (default)
-n, --no-compact Do not compact basic blocks
--abbrev N Abbreviate hashes to N characters (0 for no
abbreviation). Default=8
-t [S], --temporal [S]
Force temporal order for commits > S seconds apart
(S=604800 if no argument)