SVN i zarządzanie wersjami (cykl pracy)

Przy okazji ostatniego projektu udało nam się wypracować dobrze spisujący się proces wgrywania poprawek do działających serwisów. Chciałbym się nim z Wami podzielić…

Oczywiście korzystamy z SVN’a na jego mechanizmach ten proces został oparty.
Zasada jest dość prosta: kolejne działające wersje to tagi. A żeby kopię roboczą ustawić na nowy tag wykonujemy tak zwany switch.

Jedynym problemem była kwestia poprawek, które należy na przykład wprowadzić bezpośrednio w prodykcyjnej wersji systemu. Pomysł, aby każdą taką poprawkę wprowadzić najpierw do repozytorium, a następnie update wersji jest zbyt kosztowny. Z kolei wprowadzenie tych poprawek na wersji produkcyjnej często owocował wieloma konfliktami, które są bardzo nieporządane z uwagi na to, że serwis jest ogólnodostępny i priorytetem jest jego dostępność.

Rozwiązaniem jest następująca zasada:
Możesz zawsze dokonać poprawki na wersji produkcyjnej. Jednak, żeby poprawka była trwała – musi być niezależnie wprowadzona do repozytorium (commit do trunk). Poprawki dokonane tylko w produkcyjnej kopii roboczej zostaną najprawdopodobniej utracone przy następnym uaktualnieniu.

W takim wypadku przed switch’em wystarczy wykonać polecenie revert, np
svn revert ./ && svn sw https://moje.repozytorium.com/tags/beta-1
Lokalne zmiany są wycofywane, a kopia robocza zostaje przełączona na wersję beta-1.

W takim podejściu do problemu update’y zajmują od 3 do 10 minut, co jest akceptowalne.

Share Button

Suse 11, subclipse i subversion 1.5

Okazuje się, że nie bardzo się lubią na samym początku.
Po godzinach google’owania i nieudanych próbach kompilacji javahl, wpadłem na banalne rozwiązanie. Okazuuje się, że OpenSuse 11 dostarcza odpowiedni moduł javahl, który może przywrócić sprawną współpracę subclipse z subversion.
Oto co musiałem zrobić:
– w katalogu, gdzie mam zainstalowany eclipse znajeźć plik javahl.jar ( u mnie /configuration/org.eclipse.osgi/bundles/156/1/.cp/lib) i zmienić jego nazwę (powiedzmy na javahl.jar.old)
– podlinkować dobry moduł javahl w to miejsce:
ln -s /usr/lib/svn-javahl/svn-javahl.jar svnjavahl.jar
– zrestartować eclipse i w Window -> Preferences …-> Team -> SVN w opcji SVN interface wybrać JavaHL (JNI)
Mnóstwo czasu spędziłem nad tym problemem, mam nadzieję, że innym też pomoże.

Share Button