有没有什么办法可以简化这个颠覆预提交钩子?

有没有什么办法可以简化这个颠覆预提交钩子?

有没有办法简化这个预提交钩子?我觉得有点太复杂了

#!/bin/sh
message=`$SVNLOOK log -t "$TXN" "$REPOS"`

# Block any commits which don't reference a ticket
if echo $message | grep -q "re #"
then
    :
elif echo $message | grep -q "references #"
then
    :
elif echo $message | grep -q "refs #"
then
    :
elif echo $message | grep -q "see #"
then
    :
elif echo $message | grep -q "addresses #"
then
    :
else
    echo "Your commit must reference a ticket to be accepted. For example, re #1234"
fi

答案1

为此,您可以使用 gnur 的变体或使用模式文件:

grep -q --file="matchpatterns.txt" 

其中包含您想要接受的所有模式:

refs #
addresses #
ticket #
bug #
...

我更喜欢这种模式,因为这种列表很快就会变长,使得内联模式难以管理。

答案2

if echo $message | grep -q '\(re\|references\|refs\|see\|addresses\|\) #'

应该可以奏效。

相关内容