svn commit: r359194 - in svnadmin/hooks: . scripts
Alex Kozlov
ak at FreeBSD.org
Wed Jun 25 07:37:36 UTC 2014
Author: ak
Date: Wed Jun 25 07:37:35 2014
New Revision: 359194
URL: http://svnweb.freebsd.org/changeset/ports/359194
QAT: https://qat.redports.org/buildarchive/r359194/
Log:
- Add hook to detect empty files and directories
Approved by: portmgr (mat, miwi)
Added:
svnadmin/hooks/scripts/detect-empty.sh (contents, props changed)
Modified:
svnadmin/hooks/pre-commit
Modified: svnadmin/hooks/pre-commit
==============================================================================
--- svnadmin/hooks/pre-commit Wed Jun 25 07:27:35 2014 (r359193)
+++ svnadmin/hooks/pre-commit Wed Jun 25 07:37:35 2014 (r359194)
@@ -104,6 +104,9 @@ detect-merge-conflicts.sh "$REPO" "$TXN"
# check for newline at end of file
detect-nonewline-at-eof.sh "$REPO" "$TXN" || exit 1
+# check for empty files and directories
+detect-empty.sh "$REPO" "$TXN" || exit 1
+
# check for upper/lowercase filename conflicts on clients
case-insensitive.py "$REPO" "$TXN" || exit 1
Added: svnadmin/hooks/scripts/detect-empty.sh
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ svnadmin/hooks/scripts/detect-empty.sh Wed Jun 25 07:37:35 2014 (r359194)
@@ -0,0 +1,34 @@
+#!/bin/sh
+# $FreeBSD$
+
+REPO=$1
+TXN=$2
+
+OIFS=${IFS}
+IFS=$'\n'
+svnlook log -t "${TXN}" "${REPO}" | grep -q portmgr && exit 0
+for line in $(svnlook changed -t $TXN $REPO) ; do
+ IFS=${OIFS}
+ set -- $line
+ type=$1
+ fpath=$2
+ case $type in
+ [^AU]*) continue;;
+ esac
+ case $fpath in
+ */) # directory
+ if [ $(svnlook tree -t ${TXN} ${REPO} $fpath | wc -l) -eq 1 ]; then
+ echo "Some directories in your commit are empty: $fpath" 1>&2
+ echo "Please fix this and try committing again." 1>&2
+ exit 1
+ fi
+ ;;
+ *)
+ if [ $(svnlook cat -t ${TXN} ${REPO} $fpath | wc -c) -eq 0 ]; then
+ echo "Some files in your commit are empty: $fpath" 1>&2
+ echo "Please fix this and try committing again." 1>&2
+ exit 1
+ fi
+ ;;
+ esac
+done
More information about the svn-ports-all
mailing list