git-forest (1) - Linux Manuals

Name

git-forest --- display the commit history forest

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.

A bit of internals

git-forest originally was a zero-lookahead visualizer, i.e. branches were accomodated when they have first been seen. Since mid-June 2008, git-forest has a lookahead tunable that controls how long an inter-merge vine (a branch in the graphical sense) can be.

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=depth
This option controls the maximum length of merge subvines. It defaults to 2.

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

hxtools(7)