diff options
author | Ben Pfaff <blp@ovn.org> | 2019-09-25 13:02:31 -0700 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2019-10-01 10:20:32 -0700 |
commit | eedd4fd7481e6f2bc14c4e9d0afa7ae091dc1398 (patch) | |
tree | 3e2979fe3ba9898eaf50ac558df5519df430188d /Documentation/internals | |
parent | bf2431fb0b81e5b4236e855a7d456d477907617b (diff) | |
download | openvswitch-eedd4fd7481e6f2bc14c4e9d0afa7ae091dc1398.tar.gz |
Documentation: Document a useful pre-push hook for committers.
Someone else wrote this script originally, I think, but I've extended
it quite a bit.
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'Documentation/internals')
-rw-r--r-- | Documentation/internals/committer-responsibilities.rst | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Documentation/internals/committer-responsibilities.rst b/Documentation/internals/committer-responsibilities.rst index 4d10c3980..c35fd7089 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 |