我最近将我的 SVN 服务器迁移到了 windows 服务器。一切都进行得非常顺利——这太好了,令人难以置信——所以事实证明。
我有/有一个预提交钩子,它对任何提交的 PHP 文件进行语法检查,如果检查失败,则拒绝提交并显示合适的错误消息 - 我将在下面复制它。显然,这在 Windows 上不起作用,我还没有找到替代方法。外面有人有吗?
我真的不知道从哪里开始转换以下内容以在 Windows 系统上运行,特别是考虑到它所依赖的 *nix 工具的数量:-S
我已经阅读了有关使用 Codesniffer 之类的东西来进行 PHP 检查的预提交钩子 - 这是我最好/最简单的路线吗?
#!/bin/bash
REPOS="$1"
TXN="$2"
PHP="/usr/bin/php"
SVNLOOK=/var/www/UberSVN/ubersvn/bin/svnlook
CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | awk '{print $2}'`
ERRORSA=0
for LINE in $CHANGED
do
FILE=`echo $LINE | egrep \\.php$`
if [ $? == 0 ]
then
MESSAGE=`$SVNLOOK cat -t "$TXN" "$REPOS" "${FILE}" | $PHP -l`
if [ $? -ne 0 ]
then
ERRORSA=1
echo "---------------------------------------------------------------------------------" 1>&2
echo "${FILE}: $MESSAGE" | sed "s| -| $FILE|g" 1>&2
fi
fi
done
if [ $ERRORSA == 1 ]
then
echo "---------------------------------------------------------------------------------" 1>&2
echo "Please correct the errors and try commit again. $ERRORSA" 1>&2
exit 1
fi
exit 0