mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 12:54:11 +08:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156069 Approved by: https://github.com/Skylion007, https://github.com/malfet
61 lines
1.7 KiB
Bash
61 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -eou pipefail
|
|
|
|
GIT_TOP_DIR=$(git rev-parse --show-toplevel)
|
|
|
|
TMPFILE=$(mktemp)
|
|
trap "rm -rf ${TMPFILE}" EXIT
|
|
|
|
# By default just run against the latest commit
|
|
BASE=${BASE:-HEAD~1}
|
|
HEAD=${HEAD:-HEAD}
|
|
|
|
ancestor=$(git merge-base "${BASE}" "${HEAD}")
|
|
echo "INFO: Checking against the following stats"
|
|
(
|
|
set -x
|
|
git diff --stat=10000 "$ancestor" "${HEAD}" | sed '$d' > "${TMPFILE}"
|
|
)
|
|
|
|
while read -r git_attribute; do
|
|
if echo "${git_attribute}" | grep "linguist-generated=true" >/dev/null 2>/dev/null; then
|
|
pattern=$(echo ${git_attribute} | cut -d' ' -f1)
|
|
escaped_pattern=$(printf '%s\n' "$pattern" | sed -e 's/[\/&]/\\&/g')
|
|
# Delete known generated files
|
|
sed -i '/'"${escaped_pattern}"'/d' "${TMPFILE}"
|
|
fi
|
|
done < "${GIT_TOP_DIR}/.gitattributes"
|
|
|
|
echo "INFO: Showing non-generated files:"
|
|
(
|
|
set -x
|
|
cat "${TMPFILE}"
|
|
)
|
|
|
|
# Get only files that have changed
|
|
changed_files=$(cut -d' ' -f2 "${TMPFILE}" | xargs)
|
|
|
|
details=$(git diff --shortstat "$ancestor" "${HEAD}" -- ${changed_files})
|
|
add=$(echo "$details" | grep -o '[0-9]* insertion' | grep -o '[0-9]*' || true)
|
|
remove=$(echo "$details" | grep -o '[0-9]* deletion' | grep -o '[0-9]*' || true)
|
|
pr_size=0
|
|
if [ "$add" ]; then
|
|
pr_size=$((pr_size + add))
|
|
fi
|
|
if [ "$remove" ]; then
|
|
pr_size=$((pr_size + remove))
|
|
fi
|
|
echo "INFO: PR SIZE is ${pr_size}"
|
|
|
|
if ((pr_size > 2000)); then
|
|
echo
|
|
echo 'Your PR is '"$pr_size"' LOC which is more than the 2000 maximum'
|
|
echo 'allowed within PyTorch infra. PLease make sure to split up'
|
|
echo 'your PR into smaller pieces that can be reviewed.'
|
|
echo 'If you think that this rule should not apply to your PR,'
|
|
echo 'please contact @albanD or @seemethere.'
|
|
echo
|
|
exit 1
|
|
fi
|