2

我在运行这个时遇到问题:

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 脚本中的代码似乎没有正确处理......

如果我在 aa 更改列表编号上运行 p4 describe,它会正确报告

想法?

4

1 回答 1

0

我有同样的问题。我不是 python 专家,我使用第 350 行的打印语句调试了脚本,如下所示:

for changelist in changelists:
    print changelist # <-- here
    files = run_marshal('p4 -G describe -s "' + changelist['change'] + '"')

这揭示了我的问题——我使用了一个别名,比如p4='p4 -C utf8'将字符集传递给 perforce。因此,当我从命令行运行它时,别名已被处理并且describe命令就像一个魅力一样工作,但是当从 python 调用时,别名没有被处理。我只是通过在 python 脚本中的两个地方替换为来破解'p4'脚本。'p4 -C utf8'

您的问题可能相同或不同,但希望这将帮助您快速调试它!

于 2011-06-22T08:55:52.087 回答