Re:Developer tool 'diff' is 40 years old: can it be improved?
by JoeAltmaier on Monday August 26, 2024 @03:41PM
(#41360990)
We had, back in the '90s, a 'semantic diff' that ignored whitespace, knew about programming languages, showed only significant code changes (not comments; not empty lines; not refactoring of code into a different number of lines). All I used after that.
Re:Developer tool 'diff' is 40 years old: can it be improved?
by pipeline_peak on Monday August 26, 2024 @08:36PM
(#41363573)
I think I need a tldr for a 12 year old because my answer to that question is: does it need to be improved?
Diff, like all the original Unix tools was only meant to do one thing, compare two files. The beauty in that being that it can be a core component of whatever you want.
UI extensions, algorithm adjustability to name some. But based on what Myers mentioned as someone else said, “improved diff” is partially a semantic diff. One that’s less cold blooded about trivial changes like white spaces.
I don’t mean to be the typical pedantic HN commenter but that sounds like a diff of commit objects rather than files.
Re:Developer tool 'diff' is 40 years old: can it be improved?
by sevensor on Tuesday August 27, 2024 @08:20AM
(#41366734)
Regardless of how they messed up, they just successfully vaporized their credibility with me. It’s a big platform, and an obvious mistake that the editor should have caught. And if they care so little about my time that they’re not going to employ an editor, shame on them.
Needless to say, private parties get a lot more leeway with me. This isn’t a mistake that would phase me on a random person’s blog, but Stackoverflow speaks with the voice of authority. They have a duty to get it right.
- This may or may not qualify, since I think GNU diff supports it with an option, as does Git diff, but "Color-words" diff can be nice, where changes in the middle of the line are highlighted and whitespace is ignored.
- Somebody already recommended https://github.com/Wilfred/difftastic, which I second. It uses treesitter and is very interesting. Surprisingly, in practice difftastic is not always noticeably better than color words diff (don't expect miracles), but occasionally it is much better.
[1] https://news.ycombinator.com/item?id=27768861
[2] https://github.com/Wilfred/difftastic
I highly recommend trying it out.
Diff, like all the original Unix tools was only meant to do one thing, compare two files. The beauty in that being that it can be a core component of whatever you want.
UI extensions, algorithm adjustability to name some. But based on what Myers mentioned as someone else said, “improved diff” is partially a semantic diff. One that’s less cold blooded about trivial changes like white spaces.
I don’t mean to be the typical pedantic HN commenter but that sounds like a diff of commit objects rather than files.
Huh, vi was introduced 15 years after I first used it. Must have been inspired by vim. Think I’ll stop reading here.
Needless to say, private parties get a lot more leeway with me. This isn’t a mistake that would phase me on a random person’s blog, but Stackoverflow speaks with the voice of authority. They have a duty to get it right.
Not sure if this is a llm or just lazy research.
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/...
- This may or may not qualify, since I think GNU diff supports it with an option, as does Git diff, but "Color-words" diff can be nice, where changes in the middle of the line are highlighted and whitespace is ignored.
- Somebody already recommended https://github.com/Wilfred/difftastic, which I second. It uses treesitter and is very interesting. Surprisingly, in practice difftastic is not always noticeably better than color words diff (don't expect miracles), but occasionally it is much better.
For the last two, see Difftastic's FAQ, https://github.com/Wilfred/difftastic#isnt-this-basically---...
Update: Finally, this blog post about difftastic describes some details: https://www.wilfred.me.uk/blog/2022/09/06/difftastic-the-fan...
Update 2: Finally finally, Difftastic's wiki has more related tools: https://github.com/Wilfred/difftastic/wiki/Structural-Diffs. Difftastic's author writes many interesting things, it seems :).
Fix the bugs first, please.