summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-04-23 10:28:59 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-05-01 12:39:11 -0400
commit8b972da068708a8b17f3ab153ea940690ca49ca9 (patch)
tree7036b0bc6093b76ef541af8db335a86101589d85
parent0eddeb9896985e4139f412e41991ac5633a104ba (diff)
downloadguix-8b972da068708a8b17f3ab153ea940690ca49ca9.tar.gz
Makefile.am: Auto-configure Git on 'make'.
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.
-rw-r--r--Makefile.am10
-rw-r--r--etc/git/gitconfig16
2 files changed, 26 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 7fe18c9f6b..4a9124e0c2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,6 +14,7 @@
 # Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 # Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 # Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+# Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 # Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
 # Copyright © 2021 Andrew Tropin <andrew@trop.in>
 #
@@ -1112,6 +1113,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..831fbce6e7 100644
--- a/etc/git/gitconfig
+++ b/etc/git/gitconfig
@@ -1,5 +1,21 @@
+[commit]
+        gpgsign = true
+
 [diff "scheme"]
 	xfuncname = "^(\\(define.*)$"
 
 [diff "texinfo"]
 	xfuncname = "^@node[[:space:]]+([^,]+).*$"
+
+[format]
+        forceinbodyfrom = true  # help preserve commit authorship
+        thread = shallow
+        useAutoBase = true
+
+[pull]
+        rebase = true
+
+[sendemail]
+        to = guix-patches@gnu.org
+        headerCmd = etc/teams.scm cc-members-header-cmd
+        thread = no