PR sent.
One of the problems with git is that if you delete stuff and then merge with someone who has not deleted it, you get merge conflicts and you have to delete it all over again, because it always assumes that present content beats absent content.
Ah, for Palimpsest <
https://pdfs.semanticscholar.org/acb6/ecc6734805b4b3c49517cd6c77a54b7b6cab.pdf>! This model keeps track of insert, delete, copy, and move commits, and always DTRT without having to worry about the order of commits, because instead of using line numbers relative to a particular state, it uses insert IDs and line numbers relative to the insert. (At worst you get two inserts at the same place, but that's something you really will have to fix up.) But there is no practical implementation.