svnhook--判断本次提交的内容是否在指定路径头下

有时候在用户提交内容时,只有指定位置下的文件有提交才需要进行一些特定的限制,增加判断路径代码如下,把这个代码加在你要进行限制的前面即可

# 定义多个路径头
SPECIFIED_PREFIXES="tech-middle/demo table qa"

# 检查提交的文件是否在指定路径头下
FILE_IN_SPECIFIED_PATH=false
CHANGED_FILES1=$($SVNLOOK changed -t $TXN $REPOS | awk "{print \$2}")

#echo "当前提交的所有文件路径CHANGED_FILES1: $CHANGED_FILES1" >> "$LOG_FILE"



# 逐行处理 CHANGED_FILES1
for FILE_PATH in $CHANGED_FILES1; do
       #echo "Checking file: $FILE_PATH" >> "$LOG_FILE" # 输出当前检查的文件
    for prefix in $SPECIFIED_PREFIXES; do
        #echo "Against prefix: $prefix" >> "$LOG_FILE" # 输出当前检查的前缀
        if echo "$FILE_PATH" | grep -q "^$prefix"; then
            FILE_IN_SPECIFIED_PATH=true
             #echo "File $FILE_PATH matches prefix $prefix" >> "$LOG_FILE" # 输出匹配信息
            break 2
        fi
    done
done

# 输出最终状态
#echo "File in specified path: $FILE_IN_SPECIFIED_PATH" >> "$LOG_FILE"

# 如果不在指定路径下,允许提交
if [ "$FILE_IN_SPECIFIED_PATH" = false ]; then
    exit 0
fi

 

posted @ 2024-10-10 18:24  Hiro-D  阅读(8)  评论(0编辑  收藏  举报