Git::Hooks::GerritChangeId - Git::Hooks plugin to insert a Change-Id in a commit message
version 2.8.1
As a Git::Hooks plugin you don't use this Perl module directly. Instead, you may configure it in a Git configuration file like this:
Git::Hooks
[githooks] plugin = CheckGerritChangeId admin = joe molly
The first section enables the plugin and defines the users joe and molly as administrators, effectivelly exempting them from any restrictions the plugin may impose.
joe
molly
This Git::Hooks plugin hooks itself to the commit-msg and the applypatch-msg hooks. It is a reimplementation of Gerrit's official commit-msg hook for inserting change-ids in git commit messages. It's does not produce the same Change-Id for the same message, but this is not really necessary, since it keeps existing Change-Id footers unmodified.
commit-msg
applypatch-msg
Change-Id
(What follows is a partial copy of that document's DESCRIPTION section.)
This plugin automatically inserts a globally unique Change-Id tag in the footer of a commit message. When present, Gerrit uses this tag to track commits across cherry-picks and rebases.
After the hook has been installed in the user's local Git repository for a project, the hook will modify a commit message such as:
Improve foo widget by attaching a bar. We want a bar, because it improves the foo by providing more wizbangery to the dowhatimeanery. Signed-off-by: A. U. Thor <author@example.com>
by inserting a new Change-Id: line in the footer:
Change-Id:
Improve foo widget by attaching a bar. We want a bar, because it improves the foo by providing more wizbangery to the dowhatimeanery. Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b Signed-off-by: A. U. Thor <author@example.com>
The hook implementation is reasonably intelligent at inserting the Change-Id line before any Signed-off-by or Acked-by lines placed at the end of the commit message by the author, but if no such lines are present then it will just insert a blank line, and add the Change-Id at the bottom of the message.
If a Change-Id line is already present in the message footer, the script will do nothing, leaving the existing Change-Id unmodified. This permits amending an existing commit, or allows the user to insert the Change-Id manually after copying it from an existing change viewed on the web.
To enable the plugin you should add it to the githooks.plugin configuration option:
git config --add githooks.plugin GerritChangeId
Git::Hooks::GerritChangeId - Git::Hooks plugin to insert Change-Ids in commit messages
There's no configuration needed or provided.
Gerrit's Home Page
Gerrit's official commit-msg hook
Gerrit's official hook documentation
Gustavo L. de M. Chaves <gnustavo@cpan.org>
This software is copyright (c) 2018 by CPqD <www.cpqd.com.br>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Git::Hooks, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Git::Hooks
CPAN shell
perl -MCPAN -e shell install Git::Hooks
For more information on module installation, please visit the detailed CPAN module installation guide.