另一个颠覆“承诺失败”'blabla'的合并:200 OK

时间:2010-02-23 18:42:46

标签: python svn tortoisesvn post-commit visualsvn-server

每当我尝试使用Windows上的post-commit挂钩(在本地运行存储库和Trac)时,我就会得到臭名昭着的“MERGE of'what':200 OK”,而且我会发疯。我一直在寻找一天,但没有找到任何解决方案。

所以这就是它如何设置以及我到目前为止所尝试的内容:

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

      
  • 我在Windows上使用三个标准脚本进行提交。
  •   
  • 当我使用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中。

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

-commit.cmd后:

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

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

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

1 个答案:

答案 0 :(得分: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)