php developer & web designer
Wprowadzenie
W firmie, do projektu w którym biorę udział, przygotowaliśmy większą paczkę zmian. Powiedzmy, że wersja produkcyjna bazuje na rewizji sprzed miesiąca (korzystamy z SVN; przy każdym commit podajemy ID i url do ticketa).
W miÄ™dzyczasie rozwiÄ…zaliÅ›my w teamie okoÅ‚o 15 ticketów i nasz project manager potrzebowaÅ‚ ich listÄ™, aby przekazać klientowi do ostatecznego sprawdzenia na stagingu. Jako że jestem najbardziej doÅ›wiadczonÄ… osobÄ… w projekcie – padÅ‚o na mnie
Sposób pierwszy (oldschool)
Niby prosta czynność, bo przecież możemy otworzyć system ticketów, wyszukać wszystkie rozwiÄ…zane w ciÄ…gu miesiÄ…ca, a nastÄ™pnie spisać ID i url każdego ticketa. TrochÄ™ czasu by to zajęło…
Sposób drugi (nu skool)
PomyÅ›laÅ‚em, “hej, musi być inna droga”.
Pomocny, po raz kolejny, okazaÅ‚ siÄ™ Eclipse. Aby usprawnić caÅ‚y proces (który zajmie nam ok 30-60 sekund) musimy przejść na perspektywÄ™ “SVN Repository Exploring”. NastÄ™pnie wybieramy w panelu “SVN Repositories” repozytorium i włączamy podglÄ…d historii (“Show history”).
W panelu “History” zaznaczamy interesujÄ…ce nas rewizje i z menu kontekstowego wybieramy “Generate ChangeLog”:

W okienku, które się otworzy, mamy wybór jaki format ma mieć nasz changelog oraz gdzie ma być zapisany (w schowku czy na dysku):

Wybrałem domyślne ustawienie (svn log + schowek). Wkleiłem do edytora zawartość schowka i oto co otrzymałem:

Podsumowanie
Jak widać cała operacja jest bardzo prosta i w pełni zautomatyzowana. Co więcej, jest bardzo pomocna
Niemal rok temu pisaÅ‚em jak zainstalować system Trac w Ubuntu. Niedawno jednak przeinstalowaÅ‚em Ubuntu “od zera” (majÄ…c oczywiÅ›cie kopie wczeÅ›niejszej wersji systemu).
Przy okazji odbudowy systemu postanowiłem przenieść repozytoria svn z /var/lib/svn (jak podałem w zeszłorocznym wpisie) na /home/subversion.
Zmiana podyktowana jest wygodÄ… i wiÄ™kszym bezpieczeÅ„stwem – po prostu /home mam na osobnej partycji, dlatego nie tracÄ™ danych przy ewentualnym padzie systemu i koniecznoÅ›ci reinstalacji.
Jak zatem “przestawić” Trac’a, aby używaÅ‚ nowej lokalizacji repozytorium svn?
Po pierwsze edytujemy konfiguracje każdego z projektów trac (/var/lib/trac/[NAZWA PROJEKTU]/conf/trac.ini).
Odszukujemy liniÄ™:
repository_dir = /var/lib/svn/[NAZWA PROJEKTU]
i zamieniamy jÄ… na:
repository_dir = /home/subversion/[NAZWA PROJEKTU]
Otwierając stronę projektu w przeglądarce (http://127.0.0.1/projects/[NAZWA PROJEKTU]) zobaczymy ostrzeżenie o treści:
Warning: Can’t synchronize with the repository (The ‘repository_dir’ has changed, a ‘trac-admin resync’ operation is needed.). Look in the Trac log for more information.
Wszystko powinno być jasne. Przechodzimy do konsoli i wykonujemy następujące polecenie (będąc w /var/lib/trac):
trac-admin [NAZWA PROJEKTU] resync
Gotowe!
24 czerwca wydano oficjalni kolejnÄ… wersjÄ™ platformy Eclipse. Wersja 3.5 nosi nazwÄ™ Galileo.
Wraz z wydaniem Galileo, ukazało się aż 33 nowych wersji projektów bazujących na Eclipse. Oczywiście jednym z nich jest PDT (PHP Development Tools), które zostało zaktualizowane do wersji 2.1.
Oto co nowego zyskamy instalujÄ…c PDT 2.1:
* wsparcie dla PHP 5.3 (swojÄ… drogÄ… – wydanego wczoraj)
** ustawienie projektu do obsługi najnowszej wersji PHP
** walidacja i kolorowanie kodu PHP 5.3 (w tym przestrzeni nazw)
** obsługa przestrzeni nazw w podpowiadaniu kodu (Code Assist)
* poprawiono wiele błędów z wersji 2.0.x
* przyśpieszono działanie (start, build projektu)
* usprawniono PHP Explorer (usability)
Z pierwszych wrażeÅ„ – widzÄ™, że błąd z obsÅ‚ugÄ… svn (czy to Subclipse, czy Subversive) nadal jest obecny. Ale to raczej sprawa maÅ‚o ważna, nie przeszkadzajÄ…ca w kodowaniu. Ciekawie prezentuje siÄ™ dostÄ™pny z Galileo i PDT 2.1 – Mylyn. Jest to plugin do zarzÄ…dzania taskami. Można przez odpowiednie connectory podpiąć siÄ™ do systemów Jira lub Trac. Bardzo fajnie dziaÅ‚a w połączeniu z klientem svn (Subversive lub Subclipse).
PDT 2.1 dziaÅ‚a zdecydowanie szybciej od poprzednika co jest najwiÄ™kszym plusem, bo do PHP 5.3 na razie nie planujÄ™ siÄ™ “zabierać”
Zasadniczo, aby otrzymać kopię projektu gotową do użycia poza repozytorium możemy skorzystać z komendy:
svn export
W ten sposób wyeksportujemy sobie projekt do jakiegoÅ› katalogu, który nie bÄ™dzie zawieraÅ‚ podkatalogów .svn (meta informacje Subversion). Niestety ma to też wady, zasoby z wÅ‚aÅ›ciwoÅ›ciami svn:ignore zostanÄ… pominiÄ™te… ale nie o tym mowa
Powiedzmy, że mamy projekt współdzielony w jakimś repozytorium. Powiedzmy, że serwer repozytorium padł (i nie ma backupu) lub został wyłączony, czy w końcu całkowicie chcemy zrezygnować z pracy z SVN. Co zrobić w takim przypadku?
Okazuje się, że klient svn nie umożliwia odpięcia, tudzież wypięcia, projektu z repozytorium. W takim przypadku pomocna przydaje się znajomość powłoki. Wykonujemy, będąc w katalogu projektu, następującą komendę:
$ rm -rf `find . -type d -name .svn`
OczywiÅ›cie można to sobie uproÅ›cić. UżywajÄ…c Subclipse – plugina do Eclipse – wystarczy wybrać z menu kontekstowego projektu: Team > Disconnect.
Po skoÅ„czeniu udoskonaleÅ„ i dokonaniu kilku poprawek na PinkCrow, postanowiÅ‚em w koÅ„cu zmigrować witrynÄ™ zawierajÄ…cÄ… moje portfolio do ostatniej wersji Zend Framework, czyli 1.8.1. A zmian bÄ™dzie od groma. Od wprowadzenia dawno planowanych obsÅ‚ug layoutu i formularzy przez użycie najnowszych “gadżetów” Zend_Application, Zend_Navigation etc.
Ale do rzeczy… Jako że lokalnie używam svn (historia zmian, tagowanie wersji, etc.) katalog z bibliotekÄ… Zend’a mam podpiÄ™ty przez svn:externals.
SzukajÄ…c Å›cieżki do wersji otagowanej jako “release-1.8.1″ natrafiÅ‚em na tag “release-1.8.2″.
W pliku README.txt czytamy:
Zend Framework 1.8.2 Release ([INSERT REV NUM HERE]).
Released on May 27, 2009.
Zatem wychodzi na to, że tego newsa publikuję wcześniej niż oficjalna strona frameworka!
Inna ciekawostka, plik LICENSE.txt zawiera zakres dat 2005-2008 – ot takie maÅ‚e przeoczenie
Tytuł postu nieco przewrotny i niezrozumiały zapewne, ale już tłumaczę o co chodzi
Subversion, w sktócie SVN, to system kontroli wersji, wzorowany na używanym bardzo często niegdyś CVS.
Osobiście, oraz w pracy, korzystam(y) z SVN bardzo często. Praktycznie każdy projekt podpinam do repozytorium. Dzięki temu mam możliwość cofnięcia aplikacji do dowolnego jej stanu (czy to do rewizji, czy tagu/brancha), no i co najważniejsze dzięki systemowi kontroli wersji nad projektem może pracować niemalże nieskończona ilość developerów.
Nie chcÄ™ siÄ™ tu rozpisywać o tym czym sÄ… owe tagi i branche (gałęzie kodu) oraz jak obsÅ‚ugiwać SVN – na to przyjdzie jeszcze czas ![]()
(wiÄ™cej…)
18 sie 2008
Postanowiłem podzielić się bardzo ciekawym zbiorem tablic czy ściągawek, tak zwanych Cheat Sheets. Zbiór nie tylko ciekawy, ale i dość pokaźny. Na stronie www.addedbytes.com zamieszczono aż 19 ściągawek, m.in. z takich tematów jak:
Polecam dodać do zakładek adres http://www.addedbytes.com/cheat-sheets/, napewno kiedyś się przyda
Najnowsze komentarze