summary refs log tree commit diff
path: root/Makefile.am
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-10-08 12:18:13 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-10-22 16:09:04 -0400
commit8005e09b261d65bf0f7469cd8e89423c1c1db820 (patch)
treef98b345a8de8dfeb831e6d20fd82f4890936d825 /Makefile.am
parentfaeebdc37e9137d62e11175e83988f77496a6641 (diff)
downloadguix-8005e09b261d65bf0f7469cd8e89423c1c1db820.tar.gz
build: Add a commit-msg hook that embeds Change-Id in commit messages.
Partially implements <https://issues.guix.gnu.org/66027>.

This will make it possible to track a merged commit back to its original
posting on the mailing list, and open the door to new opportunities such as
closing fully merged series automatically.

* Makefile.am (COMMIT_MSG_MAGIC): New variable.
(.git/hooks/commit-msg): New target.
* etc/git/commit-msg: New file.
* doc/contributing.texi (Configuring Git): Document Change-Id.

Series-changes: 3
 - Clarify documentation text, as suggested by Simon
Change-Id: Ia92fa958eae600fdd4e180bad494c85db8bb4dd6
Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am12
1 files changed, 11 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 7fdb5422f0..96fb278029 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1170,7 +1170,17 @@ cuirass-jobs: $(GOBJECTS)
 	git config --add include.path ../etc/git/gitconfig; \
 	fi
 
-nodist_noinst_DATA = .git/hooks/pre-push .git/config
+COMMIT_MSG_MAGIC = VGhpcyBpcyB0aGUgY29tbWl0LW1zZyBob29rIG9mIEd1aXg=
+.git/hooks/commit-msg: etc/git/commit-msg
+	$(AM_V_at)if test -d .git; then \
+	if test -f $@  && ! grep -qF $(COMMIT_MSG_MAGIC) $@; then \
+	  mkdir -p $@.d && mv $@ $@.d && \
+	@ echo user commit-msg hook moved to $@.d/commit-msg; \
+	fi; \
+	cp etc/git/commit-msg $@; \
+	fi
+
+nodist_noinst_DATA = .git/hooks/pre-push .git/config .git/hooks/commit-msg
 
 # Downloading up-to-date PO files.