git-forest(1) | hxtools | git-forest(1) |
Name¶
Syntax¶
git-forest [-a] [--no-rebase] [--style=number] [--sha] [--svdepth=depth] [rev-list-options] [refspec...]
Description¶
git-forest is a command-line zero-lookahead git repository history visualizer with Unicode output with a bit of gitk resemblance.
Why another program?¶
The tree visualization of gitk is very useful, but there were (git 1.5.4 timeframe) no decent visualizers that can run in a console window, without the need to have X around (which gitk depends on). tig has numerous limitations, it cannot display octopus merges or octopus branching. As of git 1.5.6, there are still no other Unicode-output programs known to me.
Options¶
- -a
- Display author for each commit.
- --no-rebase
- Do not show the rebase pseudo-refs.
- --style=1
- Use single-line visuals (default).
- --style=2
- Use double-line visuals.
- --style=10
- Use specific rounded Unicode visuals for edges; glyphs might only be available with X11 terminals and appropriate fonts.
- --style=15
- Use single bold-line visuals. Not readily usable with VGA console fonts without special unimaps.
- --sha
- Display (abbreviated) SHAs for each commit.
- --svdepth=distance
- This option controls the maximum look-ahead window. If M0's parent (M1)
appears within distance or fewer lines of M0, a
"sub-vine" will be drawn in the space between the regular vines.
Default: 3
$ git-forest --svdepth=3 --topo-order ┌─ M0: Merge G into M ├─┐ │ ├ G0 │ ├ G1: Merge N into G │ ├─┐ │ │ ├ N0 │ │ ├ N1 │ │ ├ N2 │ │ ├ N3 ├─┘ │ ├ │ G2/M1 ├───┘ └ N4/M2 $ git-forest --svdepth=5 --topo-order ┌─ M0: Merge G into M ├─┐ │ ├ G0 │ ├ G1: Merge N in to G │┌┤ ││├ N0 ││├ N1 ││├ N2 ││├ N3 ├┘│ ├ │ G2/M1 ├─┘ └ N4/M2
For comparison, this is the date-order representation of this example, in case you want to reproduce it:
$ git-forest --date-order ┌─ M0: Merge G into M ├─┐ │ ├ G0 │ ├ G1: Merge N into G │┌┤ ├┘│ ├ │ G2/M1 │ ├ N0 │ ├ N1 │ ├ N2 │ ├ N3 ├─┘ └ N4/M2
All other options and arguments are passed down to git-log. Commonly useful options are --all and --topo-order.
Examples¶
git-forest --all | less -RS git-forest origin/master | less -RS
This tool does not try to minimize the empty space between branches like gitk does. Take it as a feature.
See also¶
2008-07-06 | hxtools |