Function: diff-hl--ediff-reference-buffer
diff-hl--ediff-reference-buffer is a natively compiled function
defined in diff-hl.el.
Signature
(diff-hl--ediff-reference-buffer FILE)
Documentation
Return the reference buffer for FILE used in Ediff.
Source Code
;; Defined in /nix/store/cfz56rl3lp066226i0bmmgiicls3gcq7-emacs-packages-deps/share/emacs/site-lisp/elpa/diff-hl-20261001.135/diff-hl.el
(defun diff-hl--ediff-reference-buffer (file)
"Return the reference buffer for FILE used in Ediff."
(unless file
(user-error "No current file"))
(let ((backend (vc-backend file)))
(unless backend
(user-error "The buffer is not under version control"))
(let* ((reference diff-hl-reference-revision)
;; Use the index snapshot only when diff-hl hides staged changes.
(use-index (and (diff-hl--use-git-index-base-p backend)
(not diff-hl-highlight-reference-function)))
(buf
(if use-index
(let ((obj (diff-hl-git-index-object-name file)))
(unless obj
(user-error "No index entry for %s" file))
(let ((filename (diff-hl-git-index-revision file obj)))
(find-file-noselect filename)))
(let ((rev (or reference
(assoc-default backend diff-hl-head-revision-alist)
(diff-hl-working-revision file backend))))
(unless rev
(user-error "No reference revision specified"))
(setq rev (diff-hl-resolved-revision backend rev))
(vc-find-revision-no-save file rev backend)))))
(with-current-buffer buf
(set-buffer-modified-p nil)
(read-only-mode 1))
buf)))