Function: vc-diff-mergebase

vc-diff-mergebase is an autoloaded, interactive and byte-compiled function defined in vc.el.gz.

Signature

(vc-diff-mergebase FILES REV1 REV2)

Documentation

Report diffs between the merge base of REV1 and REV2 revisions.

The merge base is a common ancestor between REV1 and REV2 revisions.

Probably introduced at or before Emacs version 27.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
;;;###autoload
(defun vc-diff-mergebase (_files rev1 rev2)
  "Report diffs between the merge base of REV1 and REV2 revisions.
The merge base is a common ancestor between REV1 and REV2 revisions."
  (interactive
   (vc-diff-build-argument-list-internal
    (or (ignore-errors (vc-deduce-fileset t))
        (let ((backend (or (vc-deduce-backend) (vc-responsible-backend default-directory))))
          (list backend (list (vc-call-backend backend 'root default-directory)))))))
  (when (and (not rev1) rev2)
    (error "Not a valid revision range"))
  (let ((backend (vc-deduce-backend))
        (default-directory default-directory)
        rootdir)
    (if backend
        (setq rootdir (vc-call-backend backend 'root default-directory))
      (setq rootdir (read-directory-name "Directory for VC root-diff: "))
      (setq backend (vc-responsible-backend rootdir))
      (if backend
          (setq default-directory rootdir)
        (error "Directory is not version controlled")))
    (let ((default-directory rootdir)
          (rev1 (vc-call-backend backend 'mergebase rev1 rev2)))
      (vc-diff-internal
       t (list backend (list rootdir)) rev1 rev2
       (called-interactively-p 'interactive)))))