Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   git-blame    ( 1 )

показать, какая ревизия и автор последний раз изменяли каждую строку файла (Show what revision and author last modified each line of a file)

  Name  |  Synopsis  |  Description  |  Options  |  The porcelain format  |  Specifying ranges  |    Incremental output    |  See also  |

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.

1. Each blame entry always starts with a line of:

<40-byte hex sha1> <sourceline> <resultline> <num_lines>

Line numbers count from 1.

2. The first time that a 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 describing the extra commit information (author, email, committer, dates, summary, etc.).

3. Unlike the Porcelain format, the filename information is always given and terminates the entry:

"filename" <whitespace-quoted-filename-goes-here>

and thus it is really quite easy to parse for some line- and word-oriented parser (which should be quite natural for most scripting languages).

Note For people who do parsing: to make it more robust, just ignore any lines between the first and last one ("<sha1>" and "filename" lines) where you do not 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 will not care.