1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
.TH "git-forest" 1 "2008-07-06" "hxtools" "hxtools"
.SH Name
.TP
git-forest \(em display the commit history forest
.SH Syntax
\fBgit\-forest\fP
[\fB\-a\fP] [\fB\-\-no\-rebase\fP] [\fB\-\-style=\fP\fInumber\fP]
[\fB\-\-sha\fP] [\fB\-\-svdepth=\fP\fIdepth\fP] [\fIrev\-list\-options\fP]
[\fIrefspec\fP...]
.SH Description
git-forest is a command-line zero-lookahead git repository history
visualizer with Unicode output with a bit of gitk resemblance.
.SS 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.
.SH Options
.TP
\fB\-a\fP
Display author for each commit.
.TP
\fB\-\-no\-rebase\fP
Do not show the rebase pseudo-refs.
.TP
\fB\-\-style=1\fP
Use single-line visuals (default).
.TP
\fB\-\-style=2\fP
Use double-line visuals.
.TP
\fB\-\-style=10\fP
Use specific rounded Unicode visuals for edges; glyphs might only be available
with X11 terminals and appropriate fonts.
.TP
\fB\-\-style=15\fP
Use single bold-line visuals. Not readily usable with VGA console fonts
without special unimaps.
.TP
\fB\-\-sha\fP
Display (abbreviated) SHAs for each commit.
.TP
\fB\-\-svdepth=\fP\fIdistance\fP
This option controls the maximum look-ahead window. If M0's parent (M1) appears
within \fIdistance\fP or fewer lines of M0, a "sub-vine" will be drawn in the
space between the regular vines.
.br
Default: \fI3\fP
.RS 8
.PP
.nf
$ 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
.fi
.PP
For comparison, this is the date\-order representation of this example, in case
you want to reproduce it:
.nf
$ git\-forest \-\-date\-order
┌─ M0: Merge G into M
├─┐
│ ├ G0
│ ├ G1: Merge N into G
│┌┤
├┘│
├ │ G2/M1
│ ├ N0
│ ├ N1
│ ├ N2
│ ├ N3
├─┘
└ N4/M2
.fi
.RE
.PP
All other options and arguments are passed down to git\-log. Commonly useful
options are \-\-all and \-\-topo\-order.
.SH Examples
.nf
git\-forest \-\-all | less \-RS
git\-forest origin/master | less \-RS
.fi
.PP
This tool does not try to minimize the empty space between branches like gitk
does. Take it as a feature.
.SH See also
\fBhxtools\fP(7)
|