Function: magit--git-insert

magit--git-insert is a byte-compiled function defined in magit-git.el.

Signature

(magit--git-insert RETURN-ERROR &rest ARGS)

Source Code

;; Defined in ~/.emacs.d/elpa/magit-20260411.1452/magit-git.el
(defun magit--git-insert (return-error &rest args)
  (setq args (flatten-tree args))
  (if (or return-error magit-git-debug)
      (let (log)
        (unwind-protect
            (let (exit errmsg)
              (setq log (make-temp-file "magit-stderr"))
              (delete-file log)
              (setq exit (magit-process-git (list t log) args))
              (when (or (> exit 0) (eq magit-git-debug 'include-success))
                (when (file-exists-p log)
                  (with-temp-buffer
                    (insert-file-contents log)
                    (goto-char (point-max))
                    (setq errmsg
                          (cond
                            ((eq return-error 'full)
                             (let ((str (buffer-string)))
                               (and (not (equal str "")) str)))
                            ((functionp magit-git-debug)
                             (funcall magit-git-debug (buffer-string)))
                            ((magit--locate-error-message)))))
                  (when magit-git-debug
                    (let ((magit-git-debug nil))
                      (with-current-buffer (magit-process-buffer t)
                        (magit-process-finish-section
                         (magit-process-insert-section
                          default-directory magit-git-executable
                          (magit-process-git-arguments args)
                          exit log 'magit-section-secondary-heading)
                         exit)))))
                (cond ((not magit-git-debug))
                      (errmsg (message "magit--git-insert: %S" errmsg))
                      ((zerop exit))
                      ((message "magit--git-insert: %s %s"
                                "Git returned with exit-code" exit))))
              (or (and return-error errmsg)
                  exit))
          (ignore-errors (delete-file log))))
    (magit-process-git (list t nil) args)))