Function: majutsu-log
majutsu-log is an interactive and natively compiled function defined
in majutsu-log.el.
Signature
(majutsu-log &optional DIRECTORY)
Documentation
Open the majutsu log buffer.
If the current directory isn't located within a jj repository, then prompt for a directory. If that directory isn't a repository either, offer to create one using `jj git init`.
Key Bindings
This command is not in any keymaps.
Aliases
Source Code
;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-log.el
;;;###autoload
(defun majutsu-log (&optional directory)
"Open the majutsu log buffer.
If the current directory isn't located within a jj repository, then
prompt for a directory. If that directory isn't a repository either,
offer to create one using `jj git init`."
(interactive
(list (and (or current-prefix-arg (not (majutsu-toplevel)))
(file-name-as-directory
(expand-file-name
(read-directory-name "Repository or directory: "
nil nil nil))))))
(let* ((default-directory (or directory default-directory))
(topdir (majutsu-toplevel default-directory)))
(cond
(topdir
(let ((default-directory topdir))
(majutsu-log-setup-buffer)))
((y-or-n-p (format "Create jj repository in %s? "
(abbreviate-file-name default-directory)))
(let* ((dest (file-name-as-directory (expand-file-name default-directory)))
(default-directory dest)
(_ (majutsu--assert-usable-jj))
(exit nil)
(out ""))
(with-temp-buffer
(let ((coding-system-for-read 'utf-8-unix)
(coding-system-for-write 'utf-8-unix))
(setq exit (majutsu-process-jj
t "git" "init"
(majutsu-convert-filename-for-jj dest))))
(setq out (string-trim (buffer-string))))
(if (zerop exit)
(let ((default-directory dest))
(majutsu-log-setup-buffer))
(user-error "jj git init failed: %s"
(if (string-empty-p out)
(format "exit %s" exit)
out)))))
(t
(user-error "Abort")))))