Jeff King [off-list ref] writes:
You can feed a set of revisions to git-blame with the "-S" option, but I
don't offhand know how it handles diffs (I think it would have to still
diff each commit against its parent, since history is non-linear, and a
list is inherently linear).
It would diff each commit against its parent specified by the file
given to the -S option. The contents of the file is fed directly to
the graft mechanism to make the fake history in effect while the
"blame" runs, and you are not limited to a linear history.