.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-BLAME" "1" "01/17/2007" "" ""
+.TH "GIT\-BLAME" "1" "01/28/2007" "" ""
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.SH "SYNOPSIS"
.sp
.nf
-\fIgit\-blame\fR [\-c] [\-l] [\-t] [\-f] [\-n] [\-p] [\-L n,m] [\-S <revs\-file>]
+\fIgit\-blame\fR [\-c] [\-l] [\-t] [\-f] [\-n] [\-p] [\-\-incremental] [\-L n,m] [\-S <revs\-file>]
[\-M] [\-C] [\-C] [\-\-since=<date>] [<rev>] [\-\-] <file>
.fi
.SH "DESCRIPTION"
\-p, \-\-porcelain
Show in a format designed for machine consumption.
.TP
+\-\-incremental
+Show the result incrementally in a format designed for machine consumption.
+.TP
\-M
Detect moving lines in the file as well. When a commit moves a block of lines in a file (e.g. the original file has A and then B, and the commit changes it to B and then A), traditional \fIblame\fR algorithm typically blames the lines that were moved up (i.e. B) to the parent and assigns blame to the lines that were moved down (i.e. A) to the child commit. With this option, both groups of lines are blamed on the parent.
.TP
.nf
git blame \-C \-C \-f $commit^! \-\- foo
.fi
+.SH "INCREMENTAL OUTPUT"
+When called with \-\-incremental option, the command outputs the result as it is built. The output generally will talk about lines touched by more recent commits first (i.e. the lines will be annotated out of order) and is meant to be used by interactive viewers.
+
+The output format is similar to the Porcelain format, but it does not contain the actual lines from the file that is being annotated.
+.TP 3
+1.
+Each blame entry always starts with a line of:
+.sp
+.nf
+<40\-byte hex sha1> <sourceline> <resultline> <num_lines>
+.fi
+Line numbers count from 1.
+.TP
+2.
+The first time that commit shows up in the stream, it has various other information about it printed out with a one\-word tag at the beginning of each line about that "extended commit info" (author, email, committer, dates, summary etc).
+.TP
+3.
+Unlike Porcelain format, the filename information is always given and terminates the entry:
+.sp
+.nf
+"filename" <whitespace\-quoted\-filename\-goes\-here>
+.fi
+and thus it's really quite easy to parse for some line\- and word\-oriented parser (which should be quite natural for most scripting languages).
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+\fBNote\fR
+For people who do parsing: to make it more robust, just ignore any lines in between the first and last one ("<sha1>" and "filename" lines) where you don't recognize the tag\-words (or care about that particular one) at the beginning of the "extended information" lines. That way, if there is ever added information (like the commit encoding or extended commit commentary), a blame viewer won't ever care.
.SH "SEE ALSO"
\fBgit\-annotate\fR(1)
.SH "AUTHOR"
A boolean to enable/disable color in the output of \fBgit\-branch\fR(1). May be set to true (or always), false (or never) or auto, in which case colors are used only when the output is to a terminal. Defaults to false.
.TP
color.branch.<slot>
-Use customized color for branch coloration. <slot> is one of current (the current branch), local (a local branch), remote (a tracking branch in refs/remotes/), plain (other refs), or reset (the normal terminal color). The value for these configuration variables can be one of: normal, bold, dim, ul, blink, reverse, reset, black, red, green, yellow, blue, magenta, cyan, or white.
+Use customized color for branch coloration. <slot> is one of current (the current branch), local (a local branch), remote (a tracking branch in refs/remotes/), plain (other refs).
+
+The value for these configuration variables is a list of colors (at most two) and attributes (at most one), separated by spaces. The colors accepted are normal, black, red, green, yellow, blue, magenta, cyan and white; the attributes are bold, dim, ul, blink and reverse. The first color given is the foreground; the second is the background. The position of the attribute, if any, doesn't matter.
.TP
color.diff
When true (or always), always use colors in patch. When false (or never), never. When set to auto, use colors only when the output is to the terminal.
.TP
color.diff.<slot>
-Use customized color for diff colorization. <slot> specifies which part of the patch to use the specified color, and is one of plain (context text), meta (metainformation), frag (hunk header), old (removed lines), or new (added lines). The values of these variables may be specified as in color.branch.<slot>.
+Use customized color for diff colorization. <slot> specifies which part of the patch to use the specified color, and is one of plain (context text), meta (metainformation), frag (hunk header), old (removed lines), new (added lines), commit (commit headers), or whitespace (highlighting dubious whitespace). The values of these variables may be specified as in color.branch.<slot>.
.TP
color.pager
A boolean to enable/disable colored output when the pager is in use (default is true).