5 ms·
Developer tool 'diff' is 40 years old: can it be improved?
- JoeAltmaier 2y agoWe 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.
- h4ck_th3_pl4n3t 2y agoThere is this amazing tool called difftastic. I've been using it for years with git and it works like a charm. [1] [2] [1] https://news.ycombinator.com/item?id=27768861 https://news.ycombinator.com/item?id=27768861 [2] https://github.com/Wilfred/difftastic https://github.com/Wilfred/difftastic
- skp1995 2y agoisn't difftastic the new way to do this? https://news.ycombinator.com/item?id=39778412 https://news.ycombinator.com/item?id=39778412 I highly recommend trying it out.
- aaron695 2y ago[dead]
- pipeline_peak 2y agoI 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.
- sevensor 2y ago> Or maybe you prefer to code with the classic old-school text editors, like vi (2012), Sublime Text (2008), or vim (1991) Huh, vi was introduced 15 years after I first used it. Must have been inspired by vim. Think I’ll stop reading here.
- gloryjulio 2y agoLooks like it's written by llm where it mixed up the numbers
- safetytrick 2y agovim is late 1991, vi was 1976, sublime text was 2008. Just seems like garbage writing (very easily could be LLM).
- aaron695 2y ago[dead]
- sevensor 2y agoRegardless 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.
- Maxim2572 2y agoIf you google "vi release date", you actually get the release of a certain League of Legends character (I think), which was introduced in 2012. Not sure if this is a llm or just lazy research.
- thelastparadise 2y agoSeems like an LLM wrote this.
- OhMeadhbh 2y agoI think diff is at least 50 years old. It shows up in the unix v5 source from 1974. https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/diff1.c https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/...
- ilyagr 2y ago- https://github.com/dandavison/delta https://github.com/dandavison/delta is nice for a prettier presentation of the same information as `git diff`. - 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 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---word-diff---ignore-all-space 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-fantastic-diff/ 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 https://github.com/Wilfred/difftastic/wiki/Structural-Diffs. Difftastic's author writes many interesting things, it seems :).
- deleted 2y ago[deleted]
- stuaxo 2y agoIt would be great if this were accompanies by a patch to diff itself.
- hulitu 2y ago> Developer tool 'diff' is 40 years old: can it be improved? Fix the bugs first, please.