【问题标题】:Problems with Trac post commit script (SyntaxError: invalid syntax)Trac 提交后脚本的问题(SyntaxError:无效语法)
【发布时间】:2010-01-07 17:48:56
【问题描述】:

我在http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook 设置了一个提交后脚本,以将变更集与票证相关联

当我尝试提交时,我收到以下错误

'post-commit' hook failed with error output:
File "/var/www/svn/repo/hooks/trac-post-commit-hook", line 101
(options, args) = parser.parse_args(sys.argv[1:])
^ SyntaxError: invalid syntax

我在 CentOS 上运行 Python 2.4.3。

我对 Python 并不熟悉,所以我无法真正说出这里发生了什么,而且之前似乎没有人遇到过这个问题(根据 Google 的说法)。

我希望这里有人知道发生了什么事。

提前致谢。

编辑:

如果有帮助,这是我的提交后脚本

REPOS="$1"
REV="$2"

LOG='/usr/bin/svnlook 日志 -r $REV $REPOS'
AUTHOR='/usr/bin/svnlook 作者 -r $REV $REPOS'
TRAC_ENV="/var/www/trac/[xxx]/"
TRAC_URL='http://trac.[xxx].com/'


/usr/bin/python /var/www/svn/repo/hooks/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV" -u "$AUTHOR" -m "$LOG" -s “$TRAC_URL”

【问题讨论】:

    标签: python svn trac post-commit


    【解决方案1】:

    你之前可能有空格或制表符(选项,参数)?可能是这样的。

    >>> (options, args) = parser.parse_args(sys.argv[1:])
    >>> # this is fine
    >>>
    >>>  (options, args) = parser.parse_args(sys.argv[1:])
      File "<stdin>", line 1
        (options, args) = parser.parse_args(sys.argv[1:])
        ^
    SyntaxError: invalid syntax
    >>>
    

    【讨论】:

    • 试过了。没有骰子。仍然告诉它是无效的语法。
    • 成功了——有一堆前导空格——而 Python 对我意识到的那种事情很敏感。谢谢马克:)
    【解决方案2】:

    哇,这很奇怪。该行绝对是有效的语法,并且 Python 版本也应该不是问题,因为脚本的版权声明与 Python 2.4 发布的年份相同。您的机器上是否安装了多个 Python?如果是,你能检查/usr/bin/env python是否返回正确的吗?

    【讨论】:

    • 嗨 Simon /usr/bin/env python 指向 2.4.3 二进制文件,我很确定只安装了 1 个 python 实例。
    • 如果有帮助,我已经编辑了问题以包含我的 svn 提交后挂钩代码。
    猜你喜欢
    • 2016-08-20
    • 2015-09-08
    • 1970-01-01
    • 2013-12-19
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    相关资源
    最近更新 更多