Uwaga, blog przeniesiony

Posty na tym blogu już nie będą się pojawiać. Zapraszam gorąco pod nowy adres: blog.grzegorzpawlik.com



Subskrybuj ten blog...

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

środa, 1 kwietnia 2009

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.

sobota, 6 września 2008

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.

Uwaga! blog przeniesiony

Posty na tym blogu już nie będą się pojawiać. Zapraszam gorąco pod nowy adres: blog.grzegorzpawlik.com
Komentowanie artykułów możliwe jest pod nowym adresem.