aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2025-04-14 16:54:45 +0200
committerLudovic Courtès <ludo@gnu.org>2025-04-14 16:58:44 +0200
commitb5e567bb2b277f89af493ba8cd0799fdb368a184 (patch)
treeb9760c92e7357fa1d36b9bf8b6b93117bd2de6de
parent0502a30d3192c7369a18b1b3bcd61ffe4d7d6acd (diff)
downloadguix-b5e567bb2b277f89af493ba8cd0799fdb368a184.tar.gz
guix-b5e567bb2b277f89af493ba8cd0799fdb368a184.zip
git: Override the user’s ‘core.autocrlf’ settings.
Fixes <https://issues.guix.gnu.org/77214>. Fixes a bug whereby setting ‘core.autocrlf’ to ‘true’ in ~/.gitconfig would lead ‘guix pull’ & co. to obtain non-bit-identical files, including possibly syntactically-invalid Scheme files. * guix/git.scm (clone*): Set ‘core.autocrlf’ to ‘input’. Reported-by: Jodi Jodingtonstinski <jodijodingtondev@gmail.com> Change-Id: I11fb20813a9fc1e14828ca8ebf5092c4b1181e5c
-rw-r--r--guix/git.scm18
1 files changed, 13 insertions, 5 deletions
diff --git a/guix/git.scm b/guix/git.scm
index 4164531c0b..01e0918588 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2018-2024 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
@@ -236,10 +236,18 @@ make sure no empty directory is left behind."
(lambda ()
(mkdir-p directory)
- (clone url directory
- (make-clone-options
- #:fetch-options (make-default-fetch-options
- #:verify-certificate? verify-certificate?))))
+ (let* ((repository
+ (clone url directory
+ (make-clone-options
+ #:fetch-options (make-default-fetch-options
+ #:verify-certificate?
+ verify-certificate?))))
+ (config (repository-config repository)))
+ ;; Override 'core.autocrlf' as set in ~/.gitconfig to ensure files are
+ ;; left unchanged when cloning and pulling.
+ (set-config-string config "core.autocrlf" "input")
+
+ repository))
(lambda _
(false-if-exception (rmdir directory)))))