【问题标题】:SVN Server pre-commit works but start-commit hook not workingSVN 服务器预提交工作,但启动提交挂钩不起作用
【发布时间】:2018-12-06 21:42:18
【问题描述】:

我有一个现有的预提交钩子工作正常,但是当我使用 start-commit 钩子时,我得到“提交被 start-commit 钩子阻止(退出代码 255)没有输出。) start-commit 看起来像这样...


#!/bin/sh
REPOS="$1"
USER="$2"
grep $USER /var/svn/repos/testrepo/hooks/owasp_users.txt
GREP_STATUS=$?
if [ $GREP_STATUS -ne 0 ]
then
    echo  $GREP_STATUS 1>&2
    echo  $REPOS-PATH 1>&2
    echo  $USER 1>&2
    exit 1
fi
exit 0

工作的预提交看起来像这样......


#!/bin/sh

REPOS="$1"
TXN="$2"

SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" > /dev/null

GREP_STATUS=$?
if [ $GREP_STATUS -ne 0 ]
then
    echo "Your commit has been blocked because you didn't add a log message." 1>&2
    echo "Please write a log message describing the purpose of your changes and" 1>&2
    echo "then try committing again. -- Thank you" 1>&2
    exit 1
fi
exit 0

该文件具有执行权限,无论 start-commit 中的代码如何,我都会收到 255 错误。 我可以只用第一行 #!/bin/sh 但添加一个简单的 line return 并返回 255 错误。

【问题讨论】:

    标签: svn


    【解决方案1】:

    我在编辑钩子时错过了转换 DOS 行尾,一个快速的 dos2unix 解决了这个问题。它的行为非常奇怪,因为 bash 和 hooks 与 CRLF 一起工作的方式不同,加上你在我浪费的时间里看不到 stdout。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      相关资源
      最近更新 更多