Subject: [PATCH v2 3/5] Makefile.am: Auto-configure Git on 'make'.

From: Maxim Cournoyer <[email-masked]>
Date: Sun, 23 Apr 2023 22:29:25 -0400

This means we do not need to worry anymore about manually syncing the pre-push
git hook or the Guix-provided git configuration.

* etc/git/gitconfig: Augment configuration template with useful options to
allow for auto-configuration.
* Makefile.am (.git/hooks/pre-push, .git/config): New targets.
(nodist_noinst_DATA): New primary variable holding the above targets.
---
 Makefile.am       | 10 ++++++++++
 etc/git/gitconfig | 15 +++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 23b939b674..7daa7d66f7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,6 +14,7 @@
 # Copyright © 2018 Oleg Pykhalov <[email-masked]>
 # Copyright © 2018 Alex Vong <[email-masked]>
 # Copyright © 2019 Efraim Flashner <[email-masked]>
+# Copyright © 2020, 2021, 2023 Maxim Cournoyer <[email-masked]>
 # Copyright © 2021 Chris Marusich <[email-masked]>
 # Copyright © 2021 Andrew Tropin <[email-masked]>
 #
@@ -1109,6 +1110,15 @@ cuirass-jobs: $(GOBJECTS)
 .PHONY: clean-go make-go as-derivation authenticate
 .PHONY: update-guix-package update-NEWS cuirass-jobs release
 
+# Git auto-configuration.
+.git/hooks/pre-push: etc/git/pre-push
+	cp etc/git/pre-push .git/hooks/pre-push
+
+.git/config: etc/git/gitconfig
+	git config include.path ../etc/git/gitconfig
+
+nodist_noinst_DATA = .git/hooks/pre-push .git/config
+
 # Downloading up-to-date PO files.
 
 WEBLATE_REPO = https://framagit.org/tyreunom/guix-translations
diff --git a/etc/git/gitconfig b/etc/git/gitconfig
index c9ebdc8fa8..0b6984a05f 100644
--- a/etc/git/gitconfig
+++ b/etc/git/gitconfig
@@ -1,5 +1,20 @@
+[commit]
+        gpgsign = true
+
 [diff "scheme"]
 	xfuncname = "^(\\(define.*)$"
 
 [diff "texinfo"]
 	xfuncname = "^@node[[:space:]]+([^,]+).*$"
+
+[format]
+        useAutoBase = true
+        thread = shallow
+
+[pull]
+        rebase = true
+
+[sendemail]
+        to = [email-masked]
+        headerCmd = etc/teams.scm cc-members-header-cmd
+        thread = no
-- 
2.39.2