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>
This commit is contained in:
Maxim Cournoyer 2023-10-08 12:18:13 -04:00
parent faeebdc37e
commit 8005e09b26
No known key found for this signature in database
GPG key ID: 1260E46482E63562
3 changed files with 114 additions and 2 deletions

View file

@ -1575,8 +1575,16 @@ different name or email just for commits in this repository, you can
use @command{git config --local}, or edit @file{.git/config} in the
repository instead of @file{~/.gitconfig}.
@cindex commit-msg hook
Other important Git configuration will automatically be configured when
building the project (@pxref{Building from Git}).
building the project (@pxref{Building from Git}). A
@file{.git/hooks/commit-msg} hook will be installed that embeds
@samp{Change-Id} Git @emph{trailers} in your commit messages for
traceability purposes. It is important to preserve these when editing
your commit messages, particularly if a first version of your proposed
changes was already submitted for review. If you have a
@file{commit-msg} hook of your own you would like to use with Guix, you
can place it under the @file{.git/hooks/commit-msg.d/} directory.
@node Sending a Patch Series
@subsection Sending a Patch Series