你能告诉我svnlook在下面是如何工作的吗?我希望将它包含在钩子中,以防止在/tags下的标记中提交
$SVNLOOK changed -t "$TXN" "$REPOS" | grep "^U\W.*\/tags\/" && /bin/echo "Cannot commit to tags!" 1>&2 && exit 1发布于 2014-01-08 18:42:03
$SVNLOOK changed -t "$TXN" "$REPOS"打印所有已更改的路径。有关参数的更多信息,请参见此处:http://svnbook.red-bean.com/en/1.7/svn.ref.svnlook.c.changed.html
接下来,将更改的路径列表通过管道传输到grep,grep正在检查路径中是否有“/tag/”的更改,即| grep "^U\W.*\/tags\/"。
&&是shell中的AND运算符。如果grep命令找到匹配项,它将返回状态代码0,在本例中它等同于"TRUE“,并且&&之后的命令将执行,否则不会执行。
在&,/bin/echo "Cannot commit to tags!" 1>&2之后的部分运行回显命令,并将消息从1(标准输出)写入&2,这是标准错误。如果成功,则使用状态代码1 exit 1退出该命令。这将导致钩子脚本返回一个非零状态代码,而您的提交将失败返回“不能提交到标记!”给用户的消息。
https://stackoverflow.com/questions/21003336
复制相似问题