Subversion 1.5
Zapewne już część z Was wie, iż w najbliższym czasie planowane jest wypuszczenie nowej wersji repozytorium kodu Subversion oznaczonej numerkiem 1.5. Zazwyczaj nie popieram publikowania na blogach informacji w stylu - “Ukazała się nowa wersja PHP” jednak w tej sytuacji postanowiłem zrobić wyjątek, a wszystko za sprawą dość istotnej zmiany funkcjonalnej kryjącej się pod nazwą “Merge tracking“.
O co tutaj właściwie chodzi - jak zapewne wiecie, a część z Was miała okazję się przekonać praca przy dużym projekcie programistycznym bez wykorzystania repozytorium kodu jest praktycznie niemożliwa, a dodatkowo praca w oparciu o blokowanie zasobów jest delikatnie mówiąć niewygodna. Dlatego też zalecaną metodą pracy w takiej sytuacji jest wykorzystanie gałęzi (branches) i okresowe łączenie zmian (merge).
Brzmi nieźle, ale na tym się kończy przyjemność, a zaczynają się trudności - wszystko za sprawą różnych szkół łączenia zmian i różnych określeń dla tych samych parametrów - efekt: nauczenie nowego programisty czym jest from, to i target wcale nie jest takie proste, a gdy do tego dołożymy “Suchy przebieg” zaczynamy wątpić w sensowność zadania. I tutaj znajduje zastosowanie w/w mechanizm śledzenia łączenia, którego zadaniem jest między innymi śledzenie tego co zostało już połączone i automatyczne naniesienie zmian które nie zostały jeszcze na niesione, dzięki czemu merge sprowadza się do:
$ cd KOPIA_ROBOCZA$ svn merge URL_DO_TRUNK
Dodatkowo dostępne są dwie nowe opcje:
--record-only- oznaczenie rewizji jako połączona bez wprowadzania zmian--reintegrate- wykorzystywane przy mergowaniu ponownym na trunk - opcja ta ma na celu wykonanie dodatkowych sprawdzeń poprawności nanoszonych zmian
Dzięki tym zmianą stosowanie gałęzi rozwojowych w ramach projektu nie powinno już stanowić problemu nawet dla niedoświadczonego użytkownika repozytorium.
Uproszczone łączenie zmian to nie jedyna z nowości warta zauważenia w nowej wersji svn, do równie ciekawych opcji możemy zaliczyć:
- wsparcie w automatycznym generowaniu changelog’a
- możliwość pobrania z repozytorium tylko interesujących fragmentów drzewa ścieżek
- interaktywne rozwiązywanie konfliktów z powłoki systemowej z wykorzystaniem klienta svn
- wsparcie dla relatywnych adresów URL w svn:external
Dla zainteresowanych więcej informacji dostępnych jest pod adresem: http://subversion.tigris.org/svn_1.5_releasenotes.html