我正在尝试< application>_ < project >_ < version>_ < iteration>
使用 shell 脚本编写一个预提交挂钩脚本来强制执行标签命名约定,任何人都可以指导我找到一个文档/链接,我可以浏览并创建一个文档/链接。我已经浏览了很多链接,但对我不起作用
我正在尝试这样的事情
ERROR=$SVNLOOK changed $REPO -t $REV |$EGREP "^A.+?/([a-z0-9_]+)/tags/\1-[0-9]+.[0-9]+.[0-9]+(.[0-9]+)?-(dev|rc[0-9]+|final)/.*$" |$WC -l
#!/bin/sh
REPO="$1"
REV="$2"
ERROR=0
SVNLOOK=/usr/bin/svnlook
AWK=/bin/awk
GREP=/bin/grep
EGREP=/bin/egrep
WC=/usr/bin/wc
ERROR=`$SVNLOOK changed $REPO -t $REV |$EGREP -i "^A.+/tags/.+$" |$WC -l`
if [ $ERROR -ne 0 ]
then
ERROR=`$SVNLOOK changed $REPO -t $REV |$EGREP "^A.+?/([a-z0-9_]+)/tags/\1-[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?-(dev|rc[0-9]+|final)/.*$" |$WC -l`
if [ $ERROR -eq 0 ]
then
echo "Tag isn't in the correct format" 1>&2
exit 1
fi
例子:FV_SSE-MAY-14_2.1.0_03
其中:应用程序 = FV 项目 = SSE-MAY-14 版本 = 2.1.0 迭代 = 03
答案1
也许这有帮助:
echo FV_SSE-MAY-14_2.1.0_03 |
LC_ALL=C egrep "^[A-Z]+_[A-Z]+-[A-Z]+-[0-9]?[0-9]_[0-9]+\.[0-9]+\.[0-9]+_[0-9]+$"