Out of curiosity, are there any VCSs that operate on AST instead of plaintext lines? (Or is something like this being developed or proven impossible?) I guess it should be possible to cooperate on shared codebase without need for every contributor to check in and out text files following exactly the same formatting. Or even naming convention. Or even same language, provided all collaborators can transpile to and from…
For example git can already convert line-endings on the fly for windows. This is special-cased, but can just as well be implemented via smudge/clean.
Oh and git-lfs is done via smudge/clean too.