7ef0d62730
Merge commit '1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5' as 'third_party/git'
56 lines
1.9 KiB
ReStructuredText
56 lines
1.9 KiB
ReStructuredText
Setting up git-multimail on Gerrit
|
|
==================================
|
|
|
|
Gerrit has its own email-sending system, but you may prefer using
|
|
``git-multimail`` instead. It supports Gerrit natively as a Gerrit
|
|
``ref-updated`` hook (Warning: `Gerrit hooks
|
|
<https://gerrit-review.googlesource.com/Documentation/config-hooks.html>`__
|
|
are distinct from Git hooks). Setting up ``git-multimail`` on a Gerrit
|
|
installation can be done following the instructions below.
|
|
|
|
The explanations show an easy way to set up ``git-multimail``,
|
|
but leave ``git-multimail`` installed and unconfigured for a while. If
|
|
you run Gerrit on a production server, it is advised that you
|
|
execute the step "Set up the hook" last to avoid confusing your users
|
|
in the meantime.
|
|
|
|
Set up the hook
|
|
---------------
|
|
|
|
Create a directory ``$site_path/hooks/`` if it does not exist (if you
|
|
don't know what ``$site_path`` is, run ``gerrit.sh status`` and look
|
|
for a ``GERRIT_SITE`` line). Either copy ``git_multimail.py`` to
|
|
``$site_path/hooks/ref-updated`` or create a wrapper script like
|
|
this::
|
|
|
|
#! /bin/sh
|
|
exec /path/to/git_multimail.py "$@"
|
|
|
|
In both cases, make sure the file is named exactly
|
|
``$site_path/hooks/ref-updated`` and is executable.
|
|
|
|
(Alternatively, you may configure the ``[hooks]`` section of
|
|
gerrit.config)
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
Log on the gerrit server and edit ``$site_path/git/$project/config``
|
|
to configure ``git-multimail``.
|
|
|
|
Troubleshooting
|
|
---------------
|
|
|
|
Warning: this will disable ``git-multimail`` during the debug, and
|
|
could confuse your users. Don't run on a production server.
|
|
|
|
To debug configuration issues with ``git-multimail``, you can add the
|
|
``--stdout`` option when calling ``git_multimail.py`` like this::
|
|
|
|
#!/bin/sh
|
|
exec /path/to/git-multimail/git-multimail/git_multimail.py \
|
|
--stdout "$@" >> /tmp/log.txt
|
|
|
|
and try pushing from a test repository. You should see the source of
|
|
the email that would have been sent in the output of ``git push`` in
|
|
the file ``/tmp/log.txt``.
|