Pokazywanie postów oznaczonych etykietą CVS. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą CVS. Pokaż wszystkie posty

sobota, 25 maja 2013

Szukanie winnego z Eclipse

Używając często jakiegoś programu czy narzędzia popadamy w rutynę. Chodzimy swoimi utartymi ścieżkami, bo już wiemy jak zrobić to co mamy do zrobienia. Taki poziom znajomości programu daje poczucie komfortu i zazwyczaj pozwala na sprawną pracę. Niestety w pewnym sensie też rozleniwia, bo zabiera motywację do poznawania nieznanych opcji, które mogą pozwolić na bardziej efektywną pracę.

Dla mnie przykładem takiego programu jest Eclipse, w którym programuję codziennie od ładnych kilku lat. Ostatnio "odkryłem" bardzo fajną funkcję w pluginach do systemów kontroli wersji, która pewnie była tam od zarania dziejów, ale do tej pory nie zwróciłem na nią uwagi.

Klikamy w menu kontekstowe na jakimś pliku objętym kontrolą wersji i wybieramy Team -> Show Annotation (lub coś podobnego w zależności od plugina, np. w RTC jest Team ->  Annotate). Eclipse potrzebuje chwilkę na zaciągnięcie całej historii pliku, po czym z lewej strony edytora pojawia się pasek na którym oznaczone są różne segmenty pliku, tak jak na screenshocie poniżej. Po najechaniu na dowolny segment tego paska zobaczymy tooltipa z opisem zmiany.



W tym widoku można łatwo stwierdzić kto, kiedy i dlaczego ostatnio modyfikował daną linię kodu. Szczególnie się to przydaje, gdy natrafimy na jakiś fragment, którego nie rozumiemy, albo wydaje nam się, że znaleźliśmy buga, ale chcemy najpierw sprawdzić jakie były intencje przy wprowadzeniu danej linii.
Do tej pory w takich sytuacjach używałem widoku historii (opcja Team -> Show history), po czym mozolnie przeglądałem wersję po wersji żeby znaleźć tą, w której po raz pierwszy znalazła się interesująca mnie linia. Teraz wiem, że jest to strata czasu której można uniknąć.

Opcja ta na pewno jest dostępna przy pracy z CVS, Subversion, oraz RTC. Innych repozytoriów nie używam, więc nie sprawdzałem, ale podejrzewam że w każdym pluginie do systemu kontroli wersji jest ona zaimplementowana.