有没有办法简化这个预提交钩子?我觉得有点太复杂了
#!/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\|\) #'
应该可以奏效。