有没有办法让Mercurial给我一个更冗长的错误信息?

时间:2010-11-08 08:57:48

标签: python mercurial

当Mercurial进程在本地运行时,我遇到了在远程服务器上运行的挂钩的问题。错误消息不是很有用,但我很确定这是一个Python路径问题。我尝试提交变更集时收到错误。

是否有完整的堆栈跟踪?以下输出都不如堆栈跟踪有用。

这是常规错误消息:

C:\workspaces\test_next>hg commit -m "test"
Exception AttributeError: "'PPReleaseProject' object has no attribute '_projectname'" in <bound method PPReleaseProject.
__del__ of <testtrack.interface.PPReleaseProject object at 0x01BE35F0>> ignored

abort: precommit.fix_in_progress hook failed

这是带有--traceback:

的输出
C:\workspaces\test_next>hg --traceback commit -m "test"
Exception AttributeError: "'PPReleaseProject' object has no attribute '_projectname'" in <bound method PPReleaseProject.
__del__ of <testtrack.interface.PPReleaseProject object at 0x01C065F0>> ignored

Traceback (most recent call last):
  File "mercurial\dispatch.pyo", line 54, in _runcatch
  File "mercurial\dispatch.pyo", line 494, in _dispatch
  File "mercurial\dispatch.pyo", line 355, in runcommand
  File "mercurial\dispatch.pyo", line 545, in _runcommand
  File "mercurial\dispatch.pyo", line 499, in checkargs
  File "mercurial\dispatch.pyo", line 492, in <lambda>
  File "mercurial\util.pyo", line 420, in check
  File "mercurial\commands.pyo", line 769, in commit
  File "mercurial\cmdutil.pyo", line 1209, in commit
  File "mercurial\commands.pyo", line 764, in commitfunc
  File "mercurial\localrepo.pyo", line 892, in commit
  File "mercurial\localrepo.pyo", line 153, in hook
  File "mercurial\hook.pyo", line 142, in hook
  File "mercurial\hook.pyo", line 84, in _pythonhook
Abort: precommit.fix_in_progress hook failed
abort: precommit.fix_in_progress hook failed

输出--debug:

C:\workspaces\test_next>hg --debug commit -m "test"
calling hook precommit.branch_check: <function precommit_bad_branch at 0x01C585F0>
calling hook precommit.debug_code_check: <function precommit_contains_debug_code at 0x01C4A830>
calling hook precommit.fix_in_progress: <function precommit_fix_in_progress at 0x01C09270>
Exception AttributeError: "'PPReleaseProject' object has no attribute '_projectname'" in <bound method PPReleaseProject.
__del__ of <testtrack.interface.PPReleaseProject object at 0x01C5D5D0>> ignored

abort: precommit.fix_in_progress hook failed

1 个答案:

答案 0 :(得分:1)

修改钩子脚本以捕获异常(将其包装在try...except块中)并在except子句中,使用traceback模块格式化全长回溯并编写它去stderr / stdout?