Fix All Conflicts: Easy-To-use CUI for Fixing Git Conflicts
github.com
github.com
i.e., I don't want to just see the final state of ours/theirs, but the changes that us/them did in order to get to those final states.
IOW, often, both sides of the diff are nearly identical, and I have to squint to see the actual difference, and make some additional effort to figure out the intent of each side.
A better format would be, for each side:
Original state -> change -> final state
- "Original state" would be normally identical for both sides
- "change" would be tiny and unique for each side, helps you see the intent of each side clearly
- "final state" is normally pretty similar between sides, (which is what troubles me, if no context given).
Maybe I'm missing something, feel free to correct
But the 3-way merge apps I remember conflate the past context with the would-be result, which was confusing.
Googling now I see that one of them has distinct "Reference view" and "Edit view" tabs - sounds like what I was looking for.
Any recommended 3-way app?
https://www.perforce.com/downloads/visual-merge-tool
Example:
https://www.perforce.com/sites/default/files/image/2017-06/s...
I'm curious, would something like this help you better understand a complex merge?
https://public.gitsense.com/insight/github?r=Microsoft/vscod...
If you click on the files in the pull request, you can see the diff and the changes on the source and target branches at once. You can also search for diffs on both branches at once, to quickly see how they were introduced.
Disclaimer: I'm the creator behind GitSense
Also it looks like this doesn't show the ancestor version, which is a shame as that's extremely useful.
Obviously that would only work for ‘git merge branch’ scenarios and the like but it’d be great.
of all the diff notations, for some reason FreeBSD updater and git merge chose the worst (for me at least)
<<<<<<<
My new code
|||||||
The original code
=======
The conflicting 'theirs' code
>>>>>>>
Same option for the non-git regular 'patch' command is "--merge=diff3".https://support.gitkraken.com/working-with-repositories/bran...
Definitely going to take a look at this; you screenshots look promising.
Everyone I talked into using it had always initially thought "meh" but later thanked me - claiming it's a huge life-saver :)
It makes solving conflicts into a fun mechanical game while reducing erroneous merges by a lot.
Thanks for creating this mkchoi212!
They can be used with git as well.
This can be frustrating at times, since many code bases cannot be reformatted or refactored because it affects version control history.
(I'm not affiliated with them in any way)
I recommend Perforce's as a merge tool because it is better than average at the specific task of merging.
Nowdays I'm using webstorm and it's differ/merger is very very good, but ymmv.
An underused feature is "local history", which is a local cache of all local changes. This can be a lifesaver sometimes.