What comes next, IMO, is semantic version control.

Version control that is aware of changes not at the file and line level, but at the function level, the module level, the library level, the language-specific construct level.

(Rich Hickey, creator of Clojure, played around with this idea, but I'm not sure where it went.)

He is referring to codeq: https://github.com/Datomic/codeq which has a last commit on 2014. But there have been recent rumours (https://medium.com/@sfyire/can-codeq-2-solve-clojures-weakne...) that Hickey is working in a new version of it. Fingers crossed!