Function: magit-find-file-noselect

magit-find-file-noselect is a byte-compiled function defined in magit-files.el.

Signature

(magit-find-file-noselect REV FILE &optional NO-RESTORE-POSITION VOLATILE)

Documentation

Read FILE from REV into a buffer and return the buffer.

REV is a revision or one of "{worktree}" or "{index}". Non-interactively REV can also be a blob object.

Aliases

magit-find-file-noselect-1 (obsolete since Magit 4.4.0)

Source Code

;; Defined in ~/.emacs.d/elpa/magit-20260411.1452/magit-files.el
(defun magit-find-file-noselect (rev file &optional no-restore-position volatile)
  "Read FILE from REV into a buffer and return the buffer.
REV is a revision or one of \"{worktree}\" or \"{index}\".
Non-interactively REV can also be a blob object."
  (let* ((rev (pcase rev
                ('nil "{worktree}")
                ((and "{index}"
                      (guard (length> (magit--file-index-stages file) 1)))
                 "{worktree}")
                (rev rev)))
         (topdir (magit-toplevel))
         (file (expand-file-name file topdir))
         (file-relative (file-relative-name file topdir))
         (buffer
          (cond-let
            ((equal rev "{worktree}")
             (let ((revert-without-query
                    (if (and$ (find-buffer-visiting file)
                              (buffer-local-value 'auto-revert-mode $))
                        (cons "." revert-without-query)
                      revert-without-query)))
               (find-file-noselect file volatile)))
            ((not topdir)
             (error "%s is not inside a Git repository" file))
            ([defdir (file-name-directory file)]
             [rev (magit--abbrev-if-oid rev)]
             (unless (file-in-directory-p file topdir)
               (error "%s is not inside Git repository %s" file topdir))
             (with-current-buffer
                 (magit--get-blob-buffer rev file-relative volatile)
               (if (magit-blob-p rev)
                   (setq magit-buffer-blob-oid--init (magit-rev-parse rev))
                 (setq magit-buffer-revision rev))
               (setq magit-buffer-file-name file)
               (setq default-directory
                     (if (file-exists-p defdir) defdir topdir))
               (setq-local revert-buffer-function #'magit--revert-blob-buffer)
               (setq-local buffer-read-only t)
               (setq-local read-only-mode--state t)
               (magit--refresh-blob-buffer)
               (current-buffer)))
            ((error "Unexpected error")))))
    (when (and (not no-restore-position)
               (equal (magit-file-relative-name) file-relative))
      (let ((pos (magit-find-file--position)))
        (with-current-buffer buffer
          (apply #'magit-find-file--restore-position pos))))
    buffer))