On Tue, Jan 24, 2017 at 11:27:32PM -0600, Edmundo Carmona Antoranz wrote: > To avoid taking up so much space on normal output printing duplicate > information on consecutive lines that "belong" to the same revision, > this option allows to print a single line with the information about > the revision before the lines of content themselves. I admit I have not followed the preceding discussion closely, so ignore me if my suggestion is way off base. But it really seems like the various outputs you are looking for are really all about customizing git-blame's human-readable output. Would it be more productive to move towards a "--format" option that shows custom items for each line? It could build on the custom formats in the pretty-print code (though I think you would want to add some custom ones, like filename, line number, line content, etc). I know that only does half of what you want, which is making some output not just per-line, but per-block. But that can come easily on top, if we allow separate per-line and per-block formats (which would default to the current output and the empty string, respectively). Then you could do something like: git blame --format-block='%h %an <%ae>%n %s' \ --format-line='\t%(filename):%(linenumber) %(linecontent)' and get something like: 1234abcd A U Thor <author@xxxxxxxxxxx> initial commit foo.c:1 #include <foo.h> foo.c:2 #include <bar.h> 5678abcd A U Thor <author@xxxxxxxxxxx> add third include foo.c:3 #include <third.h> and so on. But people can mix and match what they want to see on each line, and what they'd rather push to other lines. I don't have a huge interest in the feature myself. I switched to "tig blame" years ago and never looked back. But it just seems like your options touch no this kind of flexibility, but will limit somebody as soon as they want to switch around which information goes where. -Peff