2010-09-24 14 views
5

Odkąd odkryłem Perlbrew, jestem szczęśliwym użytkownikiem CPAN. Ale nigdy nie odkryłem, jak czytać dzienniki zmian modułów. Na przykład, patrząc na te przestarzałe z "r" w powłoce CPAN, chciałbym łatwo przejrzeć dziennik zmian, aby zdecydować, czy uaktualnić, czy nie.Jak czytasz dzienniki zmian CPAN?

Oczywiście mogę pobrać moduł, rozpakować go i polować na listę zmian. Ale mam nadzieję, że jest łatwiejszy sposób. Jak ty to robisz?

Używam starej powłoki CPAN. Jeśli CPANPLUS lub cpanminus obsługują to, rozważę zmianę.

Odpowiedz

3

cpan-outdated prawie robi to, co trzeba po wyjęciu z pudełka:

$ cpan-outdated --compare-changes 

Przede produkuje diff między wszystkimi swoimi Changes plików i najpóźniej od CPAN dla każdego przestarzałe modułu masz. Jednak może to być trochę długa & niechlujny do trałowania, jeśli masz dużo przestarzałych modułów!

szczęście trwał tylko kilka zmian, aby dodać te opcje:

$ cpan-outdated --pkg Catalyst::View::TT --compare-changes 

$ cpan-outdated --filter-pkg Catalyst --compare-changes 

Moja aktualizacji można znaleźć na Github tutaj: http://github.com/draegtun/cpan-outdated. Oto diff of my changes do tokuhirom cpan-outdated

/I3az/

+0

To byłoby naprawdę fajnie dodać do cpan (1). Będę musiał "zobaczyć, co tam zrobiłeś" :) –

+0

@brian d foy: Wszystkie cuda powinny iść do Tokuhirom (http://github.com/tokuhirom), ponieważ moje zmiany były bardzo minimalne. – draegtun

+0

Doskonale, dokładnie tego właśnie szukałem. Dzięki! –

6

Po prostu patrzę na CPAN Search. Strona główna każdej dystrybucji łączy się z głównymi plikami, możesz także przeglądać całą dystrybucję. Nie musisz pobierać ani rozpakowywać dystrybucji.

Można również użyć przełącznika -C cpan na komendy użytkownika, dzięki czemu nie trzeba wprowadzać skorupę CPAN.pm:

$ cpan -C Some::Module 

nie wiem wszystkiego, co pokaże plik zmian w raz dla wszystkich przestarzałych modułów. To prawdopodobnie byłby bałagan w terminalu. Możesz być w stanie sklecić coś z przełącznikiem -O:

$ cpan -O | perl -anle 'print $F[0] if $. > 9' | xargs cpan -C 

To $. > 9 bit jest tam, aby pominąć wyjście CPAN.pm i nagłówek tabeli. Na pewno brzydko.

Jeśli chciałbyś zrobić coś bardziej wymyślnego, możesz utworzyć tę ostatnią część skryptu, aby uruchomić osobno cpan -C i zapisać wynik do pliku. Umieść wszystkie pliki w katalogu zmian, a Bob w twoim wujku. To o wiele więcej pracy niż mi na tym zależy. Aktualizuję rzeczy i patrzę na Zmiany później, jeśli coś się zepsuje.

+0

Dzięki, brakowało mi -c jak zawsze używać powłoki, i nie jest narażony jak tam polecenia. To powinno być łatwe do wdrożenia, może dostałem tutaj nowy projekt :-) –

+0

Zgadzam się również, że zobaczenie wszystkich zmian na raz byłoby zbyt niechlujne, chciałbym tylko, żeby był dla konkretnego modułu. –