我遇到问题:
link-mbp:codeswarm-0.1 benb$ python convert_logs/convert_logs.py -perforce-path
Traceback (most recent call last):
File “convert_logs/convert_logs.py”, line 408, in
main()
File “convert_logs/convert_logs.py”, line 350, in main
files = run_marshal(’p4 -G describe -s “‘ + changelist['change'] + ‘”‘)
KeyError: ‘change’
link-mbp:codeswarm-0.1 benb$
我正在尝试使用此链接http://blog.perforce.com/blog/?p=780&cpage=1#comment-965中的code_swarm来可视化我的代码库更改。
如果我运行p4更改一切都显示正确,但此python脚本中的代码似乎没有正确处理...
如果我在更改列表编号上运行p4 describe,它会正确报告
想法?
答案 0 :(得分:0)
我遇到了完全相同的问题。我不是python的专家我使用第350行的print语句调试脚本,如下所示:
for changelist in changelists:
print changelist # <-- here
files = run_marshal('p4 -G describe -s "' + changelist['change'] + '"')
这揭示了我的问题 - 我使用了像p4='p4 -C utf8'
之类的别名将charset传递给perforce。因此,当我从命令行运行它时,别名被处理,describe
命令就像一个魅力,但是当从python调用时,别名没有被处理。我只是通过在python脚本中的两个位置用'p4'
替换'p4 -C utf8'
来破解脚本。
您的问题可能相同或不同,但希望这可以帮助您快速调试它!