Function: majutsu-ediff-merge-files

majutsu-ediff-merge-files is an interactive and natively compiled function defined in majutsu-ediff.el.

Signature

(majutsu-ediff-merge-files LEFT BASE RIGHT OUTPUT &optional MARKER-LENGTH)

Documentation

Resolve a 3-way merge with Ediff and write result to OUTPUT.

Called by `jj resolve` merge editor command via emacsclient.

Key Bindings

This command is not in any keymaps.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-ediff.el
;;;###autoload
(defun majutsu-ediff-merge-files (left base right output &optional marker-length)
  "Resolve a 3-way merge with Ediff and write result to OUTPUT.
Called by `jj resolve` merge editor command via emacsclient."
  (interactive "fLeft file: \nfBase file: \nfRight file: \nFOutput file: ")
  (let* ((left (majutsu-jj-expand-filename-from-jj left))
         (base (majutsu-jj-expand-filename-from-jj base))
         (right (majutsu-jj-expand-filename-from-jj right))
         (output (majutsu-jj-expand-filename-from-jj output))
         (marker-length (majutsu-ediff--merge-marker-length marker-length))
         (ediff-default-variant 'combined)
         (ediff-combination-pattern
          (majutsu-ediff--git-combination-pattern marker-length))
         (winconf (current-window-configuration)))
    (ediff-merge-files-with-ancestor
     left right base
     (list (lambda ()
             (majutsu-ediff--setup-merge-quit-hooks winconf)))
     output)
    (recursive-edit)))