I did this for a school project, because students would "cheat" on group projects by exclusively changing whitespace in diffs, or moving code around, thereby making it look like they had large commits.
We tracked code "moves", whitespace changes, and "trivial" changes via Levenshtein distance--which isn't great for capturing most simple renamings--and then marked them up separately in an "augmented diff".
We briefly looked into doing AST edit-distance, but that turned out to be infeasible for many reasons.
Over-all it helped the prof grade faster, at least in the degenerate cases.
We tracked code "moves", whitespace changes, and "trivial" changes via Levenshtein distance--which isn't great for capturing most simple renamings--and then marked them up separately in an "augmented diff".
We briefly looked into doing AST edit-distance, but that turned out to be infeasible for many reasons.
Over-all it helped the prof grade faster, at least in the degenerate cases.