2010-03-31 7 views
2

J'ai des problèmes en cours d'exécution ceci:essayant d'utiliser code_swarm mais Im ayant des problèmes de script python avec Perforce sur osx

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$ 

Je suis en train d'utiliser code_swarm de ce lien http://blog.perforce.com/blog/?p=780&cpage=1#comment-965 pour visualiser mes changements codebase.

si je cours change p4 tout montre correct, mais le code dans ce script python ne marche pas semblent traiter correctement ...

si je cours décris p4 sur plusieurs changelist il rend compte correctement

idées?

Répondre

0

J'ai eu exactement le même problème. Ne pas être un expert en python je débogués le script en utilisant une déclaration d'impression en ligne 350 comme ceci:

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

Cela a révélé mon problème - je l'avais utilisé un alias comme p4='p4 -C utf8' pour passer charset forcément. Donc, quand je l'ai exécuté à partir de la ligne de commande, l'alias a été traité et la commande describe a fonctionné comme un charme, mais lorsqu'elle a été appelée à partir de python, l'alias n'a pas été traité. J'ai juste piraté le script en remplaçant 'p4' par 'p4 -C utf8' dans les deux endroits du script python.

Votre problème peut être identique ou différent, mais j'espère que cela vous aidera à le déboguer rapidement!

Questions connexes