- Adding a line: ✅
- Removing a line: ✅
- Modifying a line: ✅
- Moving a codeblock: ❌ i see you’ve rewritten everything, let me just highlight it all.
RIP reviewers on my PR.
(Meme created by my coworker)
I’m surprised that after almost 20 years of versioning C code, git still manages to assign the closing brace of a function wrongly.
I’m convinced there must be a way of using ASTs to do more intelligent diffing of a given programming language, but I’m far too lazy to find out for myself.
You mean like Difftastic?
Hell yeah, being lazy paid off. Thanks.
You’re welcome. And have fun trying to break it!
There is, but your dif tool would have to be language aware and likely be slower to show difs.
There have been some attempts at semantic diffs, but it’s very uhh… difficult to gain traction with such a thing.
That’s awesome. I wonder how it’d handle moving plus a small change.
Too bad GitHub doesn’t support it yet afaict. But at least it’s not all diff tools.
laughs in IntelliJ
that’s not even a joke, I’m using intellij community as a merge and diff tool exclusively. it doesn’t support the language I want but even without it it’s better then anything else.
Beyond Compare is awesome and handles this and many other things quite well.
Most diff tools have an option to ignore leading or trailing whitespace changes.
Me omw to shift the entire codebase to the right by one tab and claim authorship over every line in the project with a completely untraceable commit
I think OP meant moving a code block up or down in a file, not left or right
Yes, thank you. I probably should have been more clear
VSCode has had that feature for some months now. Maybe it’s still hidden behind an off-by-default setting, but it’s there and I use it.
I’ll have to take a look to see if I can use it to view (enterprise) GitHub PRs, because that’d be a huge help
Good question. Maybe GitLens can help with that, if not the official GitHub extensions.
Maybe specify a different diff algorithm? Histogram for example?
Perforce diff works better than this. Even my basic Git/Gitlab diffs don’t do this.
Try difftastic! https://github.com/Wilfred/difftastic
That logo tho. oh noooooo