Я вызываю git, чтобы получить файл верхнего уровня (согласно Есть ли способ получить корневой каталог git в одной команде? ).
(let ((tmpbuffer (get-buffer-create (make-temp-name "git"))))
(call-process "git" nil tmpbuffer nil "rev-parse" "--show-toplevel")
(with-current-buffer tmpbuffer
(with-output-to-string
(princ (buffer-string))
(kill-buffer))))
Но в возвращаемой строке возвращается завершающая строка новой строки. Я не уверен, как избавиться от него.