Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Jun 2014 07:37:36 +0000 (UTC)
From:      Alex Kozlov <ak@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-svnadmin@freebsd.org
Subject:   svn commit: r359194 - in svnadmin/hooks: . scripts
Message-ID:  <201406250737.s5P7bacL053564@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406250737.s5P7bacL053564>