Skip to content

Commit

Permalink
Documentation: Document a useful pre-push hook for committers.
Browse files Browse the repository at this point in the history
Someone else wrote this script originally, I think, but I've extended
it quite a bit.

Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
blp committed Oct 1, 2019
1 parent bf2431f commit eedd4fd
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions Documentation/internals/committer-responsibilities.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,53 @@ Use Reported-by: and Tested-by: tags in commit messages to indicate the
source of a bug report.

Keep the ``AUTHORS.rst`` file up to date.

Pre-Push Hook
-------------

The following script can be helpful because it provides an extra
chance to check for mistakes while pushing to the master branch of OVS
or OVN. If you would like to use it, install it as ``hooks/pre-push``
in your ``.git`` directory and make sure to mark it as executable with
``chmod +x``. For maximum utility, make sure ``checkpatch.py`` is in
``$PATH``:

.. code-block:: bash
#! /bin/bash
remote=$1
case $remote in
ovs|ovn|origin) ;;
*) exit 0 ;;
esac
while read local_ref local_sha1 remote_ref remote_sha1; do
case $remote_ref in
refs/heads/master)
n=0
while read sha
do
n=$(expr $n + 1)
git log -1 $sha
echo
checkpatch.py -1 $sha
done <<EOF
$(git --no-pager log --pretty=%H $local_sha1...$remote_sha1)
EOF
b=${remote_ref#refs/heads/}
echo "You're about to push $n commits to protected branch $b on $remote."
read -p "Do you want to proceed? [y|n] " reply < /dev/tty
if echo $reply | grep -E '^[Yy]$' > /dev/null; then
:
else
exit 1
fi
;;
esac
done
exit 0

0 comments on commit eedd4fd

Please sign in to comment.