mirror of
https://github.com/go-gitea/gitea.git
synced 2024-09-01 14:56:30 +00:00
The prime benefit being sought here is for large archives to not clog up the rendering process and cause unsightly proxy timeouts. As a secondary benefit, archive-in-progress is moved out of the way into a /tmp file so that new archival requests for the same commit will not get fulfilled based on an archive that isn't yet finished. This asynchronous system is fairly primitive; request comes in, we'll spawn off a new goroutine to handle it, then we'll mark it as done. Status requests will see if the file exists in the final location, and report the archival as done when it exists. Fixes #11265
54 lines
1.3 KiB
Bash
54 lines
1.3 KiB
Bash
#!/bin/sh
|
|
|
|
# An example hook script to verify what is about to be pushed. Called by "git
|
|
# push" after it has checked the remote status, but before anything has been
|
|
# pushed. If this script exits with a non-zero status nothing will be pushed.
|
|
#
|
|
# This hook is called with the following parameters:
|
|
#
|
|
# $1 -- Name of the remote to which the push is being done
|
|
# $2 -- URL to which the push is being done
|
|
#
|
|
# If pushing without using a named remote those arguments will be equal.
|
|
#
|
|
# Information about the commits which are being pushed is supplied as lines to
|
|
# the standard input in the form:
|
|
#
|
|
# <local ref> <local sha1> <remote ref> <remote sha1>
|
|
#
|
|
# This sample shows how to prevent push of commits where the log message starts
|
|
# with "WIP" (work in progress).
|
|
|
|
remote="$1"
|
|
url="$2"
|
|
|
|
z40=0000000000000000000000000000000000000000
|
|
|
|
while read local_ref local_sha remote_ref remote_sha
|
|
do
|
|
if [ "$local_sha" = $z40 ]
|
|
then
|
|
# Handle delete
|
|
:
|
|
else
|
|
if [ "$remote_sha" = $z40 ]
|
|
then
|
|
# New branch, examine all commits
|
|
range="$local_sha"
|
|
else
|
|
# Update to existing branch, examine new commits
|
|
range="$remote_sha..$local_sha"
|
|
fi
|
|
|
|
# Check for WIP commit
|
|
commit=`git rev-list -n 1 --grep '^WIP' "$range"`
|
|
if [ -n "$commit" ]
|
|
then
|
|
echo >&2 "Found WIP commit in $local_ref, not pushing"
|
|
exit 1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
exit 0
|