On 25.07.2019 23:25, Ben Pfaff wrote: > On Thu, Jul 25, 2019 at 08:39:21AM -0700, Ben Pfaff wrote: >> On Thu, Jul 25, 2019 at 11:21:25AM +0300, Ilya Maximets wrote: >>> On 25.07.2019 6:09, Ben Pfaff wrote: >>>> On Wed, Jul 24, 2019 at 08:25:54PM +0300, Ilya Maximets wrote: >>>>> On 24.07.2019 20:05, Ben Pfaff wrote: >>>>>> Signed-off-by: Ben Pfaff <[email protected]> >>>>>> --- >>>>>> Based on an off-lst discussion with Ilya. This is just my first, >>>>>> off-hand >>>>>> thought on the topic. Feedback welcome! >>>>> >>>>> We could also consider suggesting a git hook like that: >>>>> --- >>>>> $ cat .git/hooks/pre-push >>>>> #!/bin/bash >>>>> >>>>> remote=$1 >>>>> protected_remote='upstream' >>>>> >>>>> if [ $protected_remote != $remote ]; then exit 0; fi >>>>> >>>>> echo "You're about to push to $protected_remote." >>>>> >>>>> read -p "Do you want to proceed? [y|n] " reply < /dev/tty >>>>> if echo $reply | grep -E '^[Yy]$' > /dev/null; then exit 0; fi >>>>> >>>>> exit 1 >>>>> --- >>>> >>>> Have you tried this? How does it work for you in practice? >>> >>> Yes. It works for me. >>> 'exit 1' from the script fails the hook and disallows further push >>> processing. >> >> OK. Do you want to submit a patch?
I'm not sure how to include this into repository and it's probably better to get this along with the docs pointing to it. So, feel free to use/modify in your patch. > > I've now installed something similar locally. I wanted to make sure > that my script for automatic crossporting didn't prompt me, so I > modified it to be selective about the branch name: > > #!/bin/bash > > remote=$1 > protected_remote='ovs' > > if [ $protected_remote != $remote ]; then exit 0; fi > > prompt=no > while read local_ref local_sha1 remote_ref remote_sha1; do > case $remote_ref in > refs/heads/master) prompt=yes ;; > esac > done > if test $prompt = no; then exit 0; fi > > echo "You're about to push to a protected branch on $protected_remote." > > read -p "Do you want to proceed? [y|n] " reply < /dev/tty > if echo $reply | grep -E '^[Yy]$' > /dev/null; then exit 0; fi > > exit 1 Looks good. But since I don't have any fully automated scripts for applying patches I'd rather forbid all branches for myself. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
