[英]How to restrict directory creation to trunk, tags, branches with a pre-commit hook in SVN?
當前設置:
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盒子上。
在預提交中添加以下腳本以限制目錄的創建:
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
在預提交的鈎子中執行svnlook dirs-changed REPOS_PATH
並檢查輸出(| grep -v ...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.