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 changes を実行するとすべてが正しく表示されますが、この python スクリプトのコードは正しく処理されていないようです...

p4 describe を変更リスト番号に対して実行すると、正しく報告されます

アイデア?

4

1 に答える 1

0

私はまったく同じ問題を抱えていました。Pythonの専門家ではないので、350行目のprint-statementを使用して次のようにスクリプトをデバッグしました。

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

これは私の問題を明らかにしました-私はp4='p4 -C utf8'PERFORCEにcharsetを渡すようなエイリアスを使用していました。したがって、コマンドラインから実行すると、エイリアスが処理され、describeコマンドはチャームのように機能しましたが、Pythonから呼び出された場合、エイリアスは処理されませんでした。Pythonスクリプトの2つの場所をに置き換え'p4'て、スクリプトをハックしました。'p4 -C utf8'

問題は同じか異なる可能性がありますが、うまくいけば、これは問題をすばやくデバッグするのに役立ちます!

于 2011-06-22T08:55:52.087 に答える