blame.blankBoundary::
	Show blank commit object name for boundary commits in
	linkgit:git-blame[1]. This option defaults to false.

blame.coloring::
	This determines the coloring scheme to be applied to blame
	output. It can be 'repeatedLines', 'highlightRecent',
	or 'none' which is the default.

blame.date::
	Specifies the format used to output dates in linkgit:git-blame[1].
	If unset the iso format is used. For supported values,
	see the discussion of the `--date` option at linkgit:git-log[1].

blame.showEmail::
	Show the author email instead of author name in linkgit:git-blame[1].
	This option defaults to false.

blame.showRoot::
	Do not treat root commits as boundaries in linkgit:git-blame[1].
	This option defaults to false.

blame.ignoreRevsFile::
	Ignore revisions listed in the file, one unabbreviated object name per
	line, in linkgit:git-blame[1].  Whitespace and comments beginning with
	`#` are ignored.  This option may be repeated multiple times.  Empty
	file names will reset the list of ignored revisions.  This option will
	be handled before the command line option `--ignore-revs-file`.

blame.markUnblamableLines::
	Mark lines that were changed by an ignored revision that we could not
	attribute to another commit with a '*' in the output of
	linkgit:git-blame[1].

blame.markIgnoredLines::
	Mark lines that were changed by an ignored revision that we attributed to
	another commit with a '?' in the output of linkgit:git-blame[1].
