Emacs has a visual diff'ing tool ediff
included by default1; I use it as it's designed, ediff-buffers
and ediff-current-file
are common entrypoints. I
configure it to work well with EXWM, the
default behavior of creating a buncha frames sort of doesn't work with
it at all. This view of it creates a new frame, split in two horizontal
windows, with the ediff control buffer underneath.
provide 'cce/ediff-config)
(setq ediff-window-setup-function 'ediff-setup-windows-plain
('split-window-horizontally) ediff-split-window-function