我正在尝试编写一个预提交钩子脚本来强制执行像<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
在regex(EGREP)部分需要帮助,以便我可以创建它。
答案 0 :(得分:1)
这样的事情应该有效:
REPOS="$1"
TXN="$2"
$SVNLOOK changed -t "$TXN" "$REPOS" | \
$EGREP -q "^A...([a-z0-9_]+)/tags/" && \
! $EGREP -q "^A...([a-z0-9_]+)/tags/\1-[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?-(dev|rc[0-9]+|final)/.*$" && \
echo wrong tag pattern >&2 && exit 1
这里的想法是,如果一行与^A...([a-z0-9_]+)/tags/
匹配,但它与^A...([a-z0-9_]+)/tags/\1-[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?-(dev|rc[0-9]+|final)/.*$
不匹配,则中止提交。