又一个Subversion“提交失败”合并'bla bla': 200 OK
每当我尝试在Windows上使用提交后钩子进行提交时,总是出现那个让人头疼的“MERGE of 'whatever': 200 OK”错误,我快要疯了。今天我到处寻找解决办法,但一直没有找到。
下面是我的设置和我目前尝试过的:
设置: Windows 7(64位) VisualSVN Server TortoiseSVN Trac 0.11.6
- 我在Windows上使用了三个标准的提交后钩子脚本。
- 当我在命令提示符下运行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里。
也许如果我能把实际的错误信息发送到日志文件中,我可以更深入地调查,但我不太确定该怎么做。
post-commit.cmd:
call %~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
非常感谢,如果有人能帮我一点点,我会非常感激! /Martin
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)