1

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

I'm running Python 2.4.3 on CentOS.

I'm not familiar with Python, so I can't really tell whats happening here and no one seems to have had this issue before (according to Google).

I was hoping someone here would know what's going on.

Thanks in advance.

EDIT:

If it helps, here is my post-commit script

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

LOG='/usr/bin/svnlook log -r $REV $REPOS'
AUTHOR='/usr/bin/svnlook author -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"

4

2 に答える 2

3

前にスペースやタブがあるかもしれません(options、args)?こんな感じかもしれません。

>>> (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
>>>
于 2010-01-07T08:35:29.727 に答える
2

うわー、それは奇妙です。この行は間違いなく有効な構文であり、スクリプトの著作権ステートメントにはPython 2.4がリリースされたのと同じ年があるため、Pythonバージョンも問題にはなりません。マシンに複数のPythonがインストールされていますか?もしそうなら、あなた/usr/bin/env pythonは正しいものを返すかどうかを確認できますか?

于 2010-01-07T08:09:33.443 に答える