当前设置:
我们的SVN实例中大约有7个存储库。每个存储库都有多个应用程序,每个应用程序都应该有一个主干、标记和分支目录!
例如:
REPOSITORY-1
--> APP-1
--> trunk
--> tags
--> branches
--> APP-2
--> trunk
--> tags
--> branches随着时间的推移,我注意到开发人员偏离了这个过程,创建了各种各样的目录。例如:
REPOSITORY-1
--> APP-1
--> src
--> READ-ME.txt
--> APP-2
--> build
--> random-file.java
--> build.xml有没有办法让钩子带有模式,限制模式拒绝任何试图在应用程序下创建除主干、标记和分支之外的文件或目录的提交?提前感谢您的帮助!
额外信息:我们的SVN服务器在一个RedHat机器上。
发布于 2014-04-07 15:45:11
在pre-commit中添加以下脚本以限制目录创建:
REPOS="$1"
TXN="$2"
DIRCHAR="/"
SVNLOOK=/opt/csvn/bin/svnlook
echo $($SVNLOOK changed -t "$TXN" "$REPOS" | awk '{print $2}') > /tmp/files_$TXN.txt
sed -i 's/ /&\n/g' /tmp/files_$TXN.txt
while read line
do
LASTCHAR=`echo $line | awk '{print substr($0,length,1)}'`
if [ "$LASTCHAR" == "$DIRCHAR" ]; then
echo -e "Cannot commit directory." 1>&2
exit 1
fi
done < /tmp/files_$TXN.txt发布于 2013-02-02 08:54:38
在预提交钩子svnlook dirs-changed REPOS_PATH中执行并检查输出(| grep -v ...)
https://stackoverflow.com/questions/14657405
复制相似问题