2011-07-23 12 views
7

Czy ktoś wie, jak odróżnić nowe błędy (te, które zostały znalezione podczas ostatniej realizacji Pylint) i stare błędy (te, które zostały znalezione podczas poprzednich egzekucji) w raporcie Pylint?Pylint - rozróżniać nowe błędy od starych

Używam Pylinta w jednym z moich projektów, a projekt jest dość duży. Pylint zgłasza dość dużo błędów (mimo że wiele z nich wyłączyłem w pliku rc). Chociaż naprawiam te błędy z czasem, ważne jest również, aby nie wprowadzać nowych. Ale raporty Pylint HTML i "analizowalne" nie rozróżniają nowych błędów od tych, które zostały wcześniej zidentyfikowane, mimo że uruchamiam Pylint z opcją persistent=yes.

Na razie - Porównuję stare i nowe raporty ręcznie. Co by było naprawdę fajnego, to czy Pylint mógłby w jakiś sposób podkreślić te komunikaty o błędach, które zostały znalezione podczas ostatniego uruchomienia, ale nie zostały znalezione na poprzednim. Czy można to zrobić za pomocą Pylinta lub istniejących narzędzi? Jeśli nie, wydaje się, że skończę pisać własne porównanie i generowanie raportów.

+1

Zauważyłem, że istnieje żądanie funkcji dla Pylint, które wygląda bardzo podobnie do mojego pytania - http://www.logilab.org/ticket/20386. Wygląda na to, że Pylint jeszcze tego nie wspiera. – Timur

Odpowiedz

2

Dwa podstawowe podejścia. Napraw błędy tak, jak się pojawiają, aby nie było starych. Lub, jeśli nie masz zamiaru naprawiać określonych rodzajów błędów kłaczków, powiedz lint, aby przestały je zgłaszać.

Jeśli masz dużo plików, dobrym pomysłem byłoby pobranie raportu kłaczków dla każdego pliku osobno, zatwierdzenie raportów kłapnięcia do kontroli wersji, takich jak svn, a następnie użycie narzędzia do porównywania zmian w systemach kontroli wersji w celu oddzielenia nowych kłaczków błędy ze starszych wcześniejszych. Powodem oddzielnych raportów dla każdego pliku .py jest ułatwienie odczytu danych wyjściowych diff.

Jeśli korzystasz z systemu Linux, vim -d oldfile newfile to dobry sposób na czytanie różnic. Jeśli korzystasz z systemu Windows, po prostu użyj funkcji diff wbudowanej w SVN Tortoise.

+1

Dzięki! Ale w rzeczywistości mam projekt z ponad 1000 plikami kodu źródłowego i wszystkie te rzeczy zostały zakodowane zanim zacząłem używać Pylint. A co gorsza - kod źródłowy jest naprawdę kiepskiej jakości (discalimer: nie był przeze mnie zakodowany :-)). Mój plik rc umożliwia tylko BŁĘDY, ale mam ich ponad 100+. Możesz sobie wyobrazić, jaka byłaby liczba błędów, gdy włączam OSTRZEŻENIA ... Naprawiam te błędy jeden po drugim, ale to ciężka praca, a to wymaga czasu, a jednocześnie dodaję nowy kod i chcę się skupić na nie wprowadzaniu nowe błędy. Dlatego wciąż chcę rozróżniać nowe błędy od starych. – Timur

+0

Od narzędzi różnicowych - tak, tak to teraz robię naprawdę :) – Timur

Powiązane problemy