5 ms·
The 3-way diff in JetBrains products, like IntelliJ, are the best, IMHO, because it helps you edit the resolved result, while updating both left and right diffs
by onetom 4y ago
The 3-way diff in JetBrains products, like IntelliJ, are the best, IMHO, because it helps you edit the resolved result, while updating both left and right diffs.
Their diff tool also has a magic-wand icon, which resolves trivial conflicts automatically. I still wonder why git doesn't do that by default... It's such a pain to resolve conflicts without that feature.
Also, you get syntax highlighting, structural editing, help, definition quick-lookup and similar IDE features available, while working on the resolved version of the code, which is syntactically correct usually, because there are no explicit, textual conflict markers in the resolved text.
- hnrodey 4y agoBeyond Compare also offers 3-way merge conflict resolution. Very helpful.
- deleted 4y ago[deleted]
- jlkuester7 4y ago+1 Beyond Compare is straight-up amazing! Its 3-way merge conflict resolution does 90% of the work for you. Best in its class at what it does!
- deleted 4y ago[deleted]
- pavon 4y agoMy experience is that the conflict files (with <<<< ===== >>>>) that git generates do have all the trivial conflicts resolved. In fact, before I learned what the the magic-wand icon did, the IntelliJ merge conflict tool really annoyed me since it showed all sorts of conflicts that git didn't.
- theptip 4y agoJetBrains resolves conflicts that git can’t IME. For example multiple branches modifying the same import lines in a Python file (most common merge conflict I see), JetBrains can resolve this. I’d be interested to know how they solve it, I suspect they run some language-aware logic to do the merge on a given hunk.
- davvid 4y agoThere's a (relatively) new feature in Git that makes the conflicts even better. This write-up is deep and super comprehensive: https://www.eseth.org/2020/mergetools.html https://www.eseth.org/2020/mergetools.html `git config mergetool.hideResolved true` enables the modern git mergetool behavior.
- dustymcp 4y agoVisual studio and Vs code has this aswell i always used that never found IT hard to do conflicts
- infensus 4y agoVS Code doesn't have 3 way merge view, yet. Looks like it's coming soon, though https://github.com/microsoft/vscode/issues/37350 https://github.com/microsoft/vscode/issues/37350
- danmur 4y agoThe diff view with all the features of the normal editor is actually amazing. I've always derided people using a GUI for version control but here I am. EDIT: derided is a strong word :) just good to learn the command line version before moving to shortcuts
- V-2 4y agoI do agree knowing the commands isn't something to be sidestepped, but frankly I find it difficult to create a mental image of several related branches without a visual aid. I envy people to whom it comes easy, but I'd rather save whatever brainpower I have for solving other problems...
- mcv 4y agoWhile IntelliJ's 3-way merge is great, there are a few things that could use improvement. If both sides change a line, accepting them both will lead to duplicating that line. Also, sometimes the change includes a line that didn't change, which again can lead to duplication. It's not hard to fix that stuff manually, but I think there's just a bit more that IntelliJ could do to make this sort of merge smoother.
- phist_mcgee 4y agoFor any neovim users, https://vimawesome.com/plugin/fugitive-vim https://vimawesome.com/plugin/fugitive-vim absolutely nails three way diffing. I honestly enjoy running a :Gvdiff these days.