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