我想阻止我的SVN存儲庫的用戶檢查某些文件的更改。我通過使用下面的預先提交的鉤子腳本完成了這一點。然而,受限制文件的數量正在增加,並且變得非常緩慢。我想知道是否有更有效的編碼方式,我玩過更改列表,但我無法完成這項工作。SVN預先提交掛鉤腳本來阻止用戶更改某些存儲庫文件
預先感謝
pre-commit鉤子腳本(基於窗口的SVN庫):
setlocal
:: Inputs from Subversion
set REPOS=%1%
set TXN=%2%
:: Checks if one of the reference files
Rem Check if the commit contains reference files
svnlook changed %REPOS% -t %TXN% | findstr /r /i "^.*referenceparts/part1.txt" > nul
if %errorlevel%==0 (goto RefPart)
svnlook changed %REPOS% -t %TXN% | findstr /r /i "^.*referenceparts/part2.txt" > nul
if %errorlevel%==0 (goto RefPart)
......
.....
etc etc
exit 0
:: Blocks the commit if part are reference
: RefPart
echo. 1>&2
echo ---------------------------------------------------------------------- 1>&2
echo Your commit has been cancelled because you are trying to change a 1>&2
echo part for a reference turbine! Please make a copy of this part and 1>&2
echo save it under a different name. 1>&2
echo ---------------------------------------------------------------------- 1>&2
echo. 1>&2
exit 1
你可能應該找到一種不同的方式來鎖定文件,但也許只有一個'svnlook改變%REPOS%-t%TXN%'可能會有所幫助(我不知道這個或findstr是瓶頸)。 – crashmstr 2012-04-27 15:56:17