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)))))