Someone else wrote this script originally, I think, but I've extended it quite a bit.
Signed-off-by: Ben Pfaff <[email protected]> --- .../internals/committer-responsibilities.rst | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/Documentation/internals/committer-responsibilities.rst b/Documentation/internals/committer-responsibilities.rst index 4d10c3980875..c35fd708913b 100644 --- a/Documentation/internals/committer-responsibilities.rst +++ b/Documentation/internals/committer-responsibilities.rst @@ -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 -- 2.21.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
