Post Commit Hook with Trac and SVN

戏子无情 提交于 2019-12-06 07:17:13
ars

You might want to check this answer to see if it helps you solve your problem:

If that doesn't help, you should try logging to a file. Since it works fine when you use SVN, but fails for Trac, it's probably some config error. Once you can actually view the error message, it will be easier to fix. For starters try changing to:

Python "%~dp0\trac-post-commit-hook" -p "%TRAC_ENV%" -r "%REV%" 2>&1 1>>c:\temp\trachook.log

in your cmd file. This should send both stdout and stderr messages to the \temp\trachook.log file.

EDIT: Sorry, missed the error message you posted already. Looks like it's not getting the right options.project and it might be set to None when it should be set from TRAC_ENV from the -p option.

Are you sure you're running it with that option after you rename it to .py and run it? If so, try changing that file and logging the value of options.project after the arguments have been parsed. Try to track down why it's not being set.

EDIT: By the way, the error line:

File "trac-post-commit-hook.py", line 104, in <module>
os.environ{'PYTHON_EGG_CACHE'] = os.path.join(options.project, '.egg-cache')

I don't see a reference to this in the link to the post-commit-hook. Did you add this? Or is the link wrong? Also, there's a syntax error in that line: the curly brace '{' should be a square brace '['. But I think the error actually happens before that, in the os.path.join (options.project is None). Try putting a line before that one:

print 'options.project is set to: ', options.project

and see what the output is.

the hook script requires the parameters to be passed. To test by hand, you can run:

trac-post-commit-hook -p /path/to/environment -r 1001

replace 1001 with a revision that contains a command, and the path with your trac environment. Run it while you are in the hooks directory.

Good luck!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!