summary refs log tree commit diff
diff options
context:
space:
mode:
authorMorgan Smith <Morgan.J.Smith@outlook.com>2021-04-08 12:16:35 -0400
committerRicardo Wurmus <rekado@elephly.net>2021-04-12 21:42:15 +0200
commitd375eddda0b407b29ce0f7d29a582623cef20a89 (patch)
tree55b747cdef9e3097a4f1d0bb86b5d1106b661836
parentd14f21389c7faeb8a763ebbcf1b8aa1ba4deade9 (diff)
downloadguix-d375eddda0b407b29ce0f7d29a582623cef20a89.tar.gz
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>
-rwxr-xr-xetc/committer.scm.in8
1 files changed, 4 insertions, 4 deletions
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
index 801b5d195e..cc713dcdcd 100755
--- a/etc/committer.scm.in
+++ b/etc/committer.scm.in
@@ -89,8 +89,7 @@ LINE-NO in 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 @@ LINE-NO in PORT."
 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