Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SVN钩子预提交钩子,防止添加相同的文件名_Php_Bash_Svn_Svn Hooks - Fatal编程技术网

Php SVN钩子预提交钩子,防止添加相同的文件名

Php SVN钩子预提交钩子,防止添加相同的文件名,php,bash,svn,svn-hooks,Php,Bash,Svn,Svn Hooks,我的存储库中有一个类列表,我不希望添加两次相同的类名。 我的目标是防止提交相同的文件名,即如果任何目录中已经存在abc.class.php,则用户无法将abc.class.php添加到存储库中。 我试过了 它正在检查/var/www/html/REPO/(checkedOut Branch)中提交的文件,但我想检查存储库中的文件。 有可能的方法吗?您可以使用svnlook树: CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep "^[A]"

我的存储库中有一个类列表,我不希望添加两次相同的类名。

我的目标是防止提交相同的文件名,即如果任何目录中已经存在abc.class.php,则用户无法将abc.class.php添加到存储库中。
我试过了

它正在检查/var/www/html/REPO/(checkedOut Branch)中提交的文件,但我想检查存储库中的文件。


有可能的方法吗?

您可以使用
svnlook树

CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep "^[A]" | $AWK '{print $2}' | grep \.class.php$`
tree=$( svnlook tree "$REPOS" )

for FILENAME in $CHANGED
do  
    if grep -q "$FILENAME" <<< "$tree"
    then
        echo "WARNING-  "$FILENAME" - class name already exist" 1>&2
        exit 1
    fi
done
CHANGED=`$SVNLOOK CHANGED-t“$TXN”“$REPOS”| grep”^[A]“|$AWK'{print$2}'| grep\.class.php$`
树=$(svnlook树“$REPOS”)
对于文件名,以$CHANGED为单位
做

如果grep-q“$FILENAME”非常感谢,得到了一个方向,但grep命令给出了错误-语法错误:意外重定向,搜索了此错误并添加了#/bin/bash在顶部,仍在处理错误谢谢,添加#/bin/bash位于顶部已解决问题
CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep "^[A]" | $AWK '{print $2}' | grep \.class.php$`
tree=$( svnlook tree "$REPOS" )

for FILENAME in $CHANGED
do  
    if grep -q "$FILENAME" <<< "$tree"
    then
        echo "WARNING-  "$FILENAME" - class name already exist" 1>&2
        exit 1
    fi
done