Take the case when a big chunk of some parent repository is taken as a mostly starting point for another child repository, deleted from the original, and made a submodule instead. (All of this has already been completed and is in the past now.)
I see that .git/info/grafts
would allow one to preserve the history for git-blame
and git-annotate
, and can possibly be employed ex post facto.
However, what if the files are not exactly the same? E.g. one version was deleted from the old original parent repo, and a slightly modified version was committed to the new submodule child one? Can a reference still be made? Especially if both repositories continue to be updated, and one would rather not have to deal with re-writing any past history (any more than need be).