3 ms·
>Git is line-oriented and has no notion of semantic diffs and semantic merges. This makes it a raw tool when working with, ironically, source code. Git is a co
by mikewarot 4y ago
>Git is line-oriented and has no notion of semantic diffs and semantic merges. This makes it a raw tool when working with, ironically, source code.
Git is a content addressable snapshot system, with bolted on code to make it retrospectively appear to be a line-oriented system.
It's worse than you thought.
- kardos 4y agoAs I understand it, you can configure git's difftool to be something more clever than line based
- beermonster 4y agoSee https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-python-elixir-and-more https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-...
- morelisp 4y agoIt's not worse. Snapshots are exactly what you want if you would like to have format-aware diff/merge or to experiment with alternate algorithms. But it's easier to complain about git and throw out pie-in-the-sky ideas about "modernizing our tools" than to try the actually-existing AST-based diff/merge tools and realize it's 100x more complex for no workflow gain.