4P4MNK2CAJJ6IAQCLSAS36YLVN6DRBRZYWURHY3PXPSQFLYGLRPAC
;; TODO
)
(cond
(contents-done
(cond ((eq (vc-pijul-state file) 'added)
(vc-pijul--out-ok "remove" file))))
((vc-pijul--out-ok "reset" file))))
(defvar vc-pijul-pull-push-history nil
"The history of pull and push operations.")
(defun vc-pijul-pull (prompt)
"Pull from a remote.
If prompt is non-nil, ask for the location of the remote."
(let ((remote (cond
(prompt
(read-string "Pull from remote: "
nil 'vc-pijul-pull-push-history))
(""))))
(with-temp-buffer
(apply #'vc-pijul--call t
"pull" (split-string remote " "))
(buffer-string))))
(defun vc-pijul-diff (files &optional _rev1 _rev2 buffer async)
"Insert the diff for FILES into BUFFER, or the *vc-diff* buffer if \
BUFFER is nil.
If ASYNC is non-nil, run ascynchronously.
In principle REV1 and REV2 should be used as anchors of
comparisons, but I have not yet found what this means to pijul."
;; NOTE: According to
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21969, perhaps we
;; shall always run diff synchronously. But I want to try the
;; ascynchronous implementation first.
(cond
(async
;; TODO: I don't know how to convert the output of "pijul diff" to
;; the format Emacs expects.
(apply #'vc-pijul--async "diff" buffer files))))