diff options
author | Ludovic Courtès <ludo@gnu.org> | 2025-04-14 16:54:45 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2025-04-14 16:58:44 +0200 |
commit | b5e567bb2b277f89af493ba8cd0799fdb368a184 (patch) | |
tree | b9760c92e7357fa1d36b9bf8b6b93117bd2de6de | |
parent | 0502a30d3192c7369a18b1b3bcd61ffe4d7d6acd (diff) | |
download | guix-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.scm | 18 |
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))))) |