etc/committer: Use git plumbing instead of porcelain.

* etc/committer.scm.in (diff-info): Use "git diff-files" instead of "git diff".
(old-sexp): Use "git cat-file" instead of "git show".

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
This commit is contained in:
Morgan Smith 2021-04-08 12:16:35 -04:00 committed by Ricardo Wurmus
parent d14f21389c
commit d375eddda0
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -89,8 +89,7 @@ (define* (hunk->patch hunk #:optional (port (current-output-port)))
(define (diff-info)
"Read the diff and return a list of <hunk> values."
(let ((port (open-pipe* OPEN_READ
"git" "diff"
"--no-color"
"git" "diff-files"
"--no-prefix"
;; Only include one context line to avoid lumping in
;; new definitions with changes to existing
@ -154,8 +153,9 @@ (define (old-sexp hunk)
corresponding to the top-level definition containing the staged changes."
;; TODO: We can't seek with a pipe port...
(let* ((port (open-pipe* OPEN_READ
"git" "show" (string-append "HEAD:"
(hunk-file-name hunk))))
"git" "cat-file" "-p" (string-append
"HEAD:"
(hunk-file-name hunk))))
(contents (get-string-all port)))
(close-pipe port)
(call-with-input-string contents