← Back to context

Comment by KingMob

5 hours ago

Yeah, it's a cool idea, but for proprietary formats, it's much harder for outsiders to do, and the original companies just don't see it as something they should take care of. My gut says there's too many changes that couldn't be cleanly merged anyway, so they think it's not worth the bother. (And they might be right.)

At least for code, I know people have attempted format-aware, structural diffing for a while. The Lisp communities tried a few times, because s-exps are trivial to turn into trees. None became the standard diff tool, though. However, modern tools like difftastic used tree-sitter to bring a lot of language-aware diffing to the masses.

- https://docs.racket-lang.org/sexp-diff/index.html

- https://github.com/michaelw/mw-diff-sexp

- https://github.com/lambdaisland/deep-diff2

- https://fazzone.github.io/autochrome.html

- https://github.com/Wilfred/difftastic