diff --git a/dist-git.spec b/dist-git.spec index 78a88ca..8b24027 100644 --- a/dist-git.spec +++ b/dist-git.spec @@ -88,6 +88,9 @@ touch %{buildroot}%{_sharedstatedir}/dist-git/gitolite/hooks/common/update cp -a scripts/httpd/upload.cgi %{buildroot}%{_sharedstatedir}/dist-git/web/ +cp -a scripts/git/hooks/update-block-push-origin \ + %{buildroot}%{_sharedstatedir}/dist-git/gitolite/local/VREF/update-block-push-origin + ln -f -s %{_sysconfdir}/dist-git/gitolite.rc \ %{buildroot}%{_sharedstatedir}/dist-git/git/.gitolite.rc @@ -97,8 +100,6 @@ ln -f -s %{_sharedstatedir}/dist-git/gitolite \ ln -f -s %{_sharedstatedir}/dist-git/git/rpms \ %{buildroot}%{_sharedstatedir}/dist-git/git/repositories -ln -f -s %{_datadir}/git-core/update-block-push-origin \ - %{buildroot}%{_sharedstatedir}/dist-git/gitolite/local/VREF/update-block-push-origin diff --git a/scripts/git/hooks/update-block-push-origin b/scripts/git/hooks/update-block-push-origin new file mode 100644 index 0000000..8b427a8 --- /dev/null +++ b/scripts/git/hooks/update-block-push-origin @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Block pushes to branches if their name starts with `origin/` +# https://fedorahosted.org/rel-eng/ticket/4071 + +refname="${1}" + +echo "${refname}" | grep -qE '^refs/heads/origin/' + +if [ $? == 0 ]; then + echo "Can't push a branch named $refname" + exit 1 +fi + +exit 0