Проблемы со скриптом после фиксации Trac (SyntaxError: недопустимый синтаксис)

Я установил сценарий пост-фиксации, который можно найти по адресу 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"


person Jay Sidri    schedule 07.01.2010    source источник


Ответы (2)


Может быть, у вас есть пробел или табуляция перед (параметры, аргументы)? может быть так.

>>> (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
>>>
person YOU    schedule 07.01.2010
comment
Пробовал. Никаких кубиков. По-прежнему сообщаю неверный синтаксис. - person Jay Sidri; 07.01.2010
comment
Это помогло - была куча ведущих пробелов - и Python чувствителен к подобным вещам, как я понимаю. Спасибо, Марк :) - person Jay Sidri; 07.01.2010

Вау, это странно. Строка определенно имеет допустимый синтаксис, и версия Python также не должна быть проблемой, поскольку заявление об авторских правах сценария относится к тому же году, в котором был выпущен Python 2.4. У вас есть несколько установок Python на вашем компьютере? Если да, то можете ли вы проверить, верен ли /usr/bin/env python?

person Simon    schedule 07.01.2010
comment
Привет, Саймон / usr / bin / env python указывает на двоичный файл 2.4.3, и я почти уверен, что установлен только 1 экземпляр python. - person Jay Sidri; 07.01.2010
comment
Если это помогает, я отредактировал вопрос, включив в него свой код ловушки svn после фиксации. - person Jay Sidri; 07.01.2010