2012-02-20 63 views
0

我是SVN的新手,我正在嘗試編寫一個預先提交鉤子來檢查模式爲^ABC-[0-9]+|^CONFIG:+|^MERGE:的提交消息。我使用此代碼:pre-commit鉤子不檢查模式

if [ `/svn/bin/svnlook log -t "$TXN" "$REPOS" | egrep -v "^ABC-[0-9]+|^CONFIG:+|^MERGE:"` ]; 
then 
    echo "" 
     exit 1 
fi; 

但是當我需要與像「測試 - 測試」可無論如何COMMITED消息的CL這是行不通的。問題是什麼?

預先感謝您!

+0

的問題是grep的是字符串的結果。以下將工作:$ SVNLOOK日誌-t「$ TXN」「$ REPOS」| egrep -q -v「^ ABC- [0-9] + |^CONFIG:|^MERGE:」 if [$? -eq 0]; – user498274 2012-02-21 08:21:02

回答

2

下面的腳本允許只與需要的圖案^ ABC- [0-9] +承諾$ |^CONFIG:|^MERGE:

REPOS="$1" 
TXN="$2" 

# Make sure that the log message contains some text. 
SVNLOOK=/usr/bin/svnlook 
$SVNLOOK log -t "$TXN" "$REPOS" | \ 
grep -E "^ABC-[0-9]+$|^CONFIG:|^MERGE:" > /dev/null || exit 1 

# Exit on all errors. 
set -e 


# All checks passed, so allow the commit. 
exit 0