0

每当我尝试在 Windows 上使用提交后挂钩(在本地运行存储库和 Trac)进行提交时,我都会得到臭名昭著的“'不管'的合并:200 OK”,我快疯了。我一直在寻找一天,但没有找到任何解决方案。

所以这是它的设置方式以及我到目前为止所尝试的方式:

设置:Windows 7(64 位)VisualSVN 服务器 TortoiseSVN Trac 0.11.6

  • 我在 Windows 上使用三个标准脚本进行 post-commit。
  • 当我使用 repo 和 changesetnumber 作为参数从命令提示符运行 post-commit.cmd 时,一切正常。
  • 经过广泛的故障排除后,我发现如果我删除 trac-post-commit.cmd 中的最后一行,Python "%~dp0\trac-post-commit-hook.py" -p "%TRAC_ENV%" -r " %REV%" -u "%AUTHOR%" -m "%LOG%",提交失败错误消失。
  • 在 python 脚本中添加1/0(生成除以零错误)并没有显示任何不同。但是,从命令提示符中我得到一个错误。
  • 删除 python 脚本中的所有代码也会使提交失败消失,所以我猜罪魁祸首在 trac-post-commit-hook.py 中。

也许如果我可以将实际错误发送到日志文件,我可以更深入地挖掘,但我不确定如何。

提交后.cmd:

调用 %~dp0\trac-post-commit-hook.cmd %1 %2

trac-post-commit-hook.cmd:
http ://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook?rev=920

非常感谢,如果有人可以在这里提供一点帮助,那将意味着很多!/马丁

4

1 回答 1

0

要在执行 SVN 提交时收到错误消息,您应该能够更改:

if __name__ == "__main__": 
    if len(sys.argv) < 5: 
        print "For usage: %s --help" % (sys.argv[0]) 
    else: 
        CommitHook() 

至:

if __name__ == "__main__": 
    if len(sys.argv) < 5: 
        print "For usage: %s --help" % (sys.argv[0]) 
    else: 
        try:
            CommitHook()
        except Exception, e:
            print >> sys.stderr, str(e)
            sys.exit(1)
于 2010-02-23T19:10:32.477 回答