Podstawy SVN |
Wpisany przez Patryk yarpo Jar | |
sobota, 09 października 2010 18:10 | |
Subversion (znany również jako SVN) – system kontroli wersji, który powstał w celu zastąpienia CVS. Z założenie SVN jest w większości przypadków funkcjonalnie zgodny ze swoim poprzednikiem, z kompatybilności zrezygnowano tam, gdzie było to niezbędne do wprowadzenia nowych rozwiązań. SVN jest wolnym i otwartym oprogramowaniem na licencji Apache. (wikipedia.org) W tym artykule postaram się przybliżyć zasady działania tegoż systemu. Co to jest?Jest to zestaw narzędzi (klient i serwer) pozwalających na zarządzanie wersjami plików należących do projektu (hisotoria zmian pliku, cofanie zmian do dowolnej rewizji, informacje o autorze zmian itp.). Użytkownik posiada klienta SVN. Najczęściej na zdalnym serwerze trzymane są tzn. repozytoria.
Jak to działa?Załóżmy, że mamy repozytorium o nazwie "test". Jest ono umieszczone na serwerze SVN, gdzieś w internecie. Mamy też dwóch programistów: Zdzisia i Franka. Obaj na swoich komputerach mają zainstalowane oprogramowanie pozwalające na korzystanie z repozytoriów SVN (klienty SVN). Aby uprościć sprawę załóżmy jeszcze, że cały projekt składa się z 1 pliku, o nazwie `plik_projektowy.php'.
Powyższy rysunek pokazuje, podstawowe funkcje jakich będą używać programiści: commit - jest to wysłanie pliku lokalnego na serwer SVN. update - jest to pobranie pliku z serwera do naszego lokalnego projektu.
Prosta historyjka mówiąca, jak wygląda codzienna praca z kodem pliku `plik_projektowy.php': 1. Franek i Zdzisiu przychodzą do pracy. Obaj otwierają swój projekt i wykonują polecenie svn update. Na ich komputerach lokalnych pojawia się najnowasza wersja (rewizja HEAD) pliku. 2. Franek dzisiaj ma spotkanie, więc nie będzie programował. Zdzisiu robi wiele zmian w kodzie pobranego pliku. Pod koniec dnia, gdy już wszystko działa i jest przetestowane, Zdzisiu wysyła ten plik na serwer używając polecenie `svn commit'. Jutro Zdzisiu idzie na urlop, ale na Franka czeka już plik z wprowadzonymi zmianami na serwerze SVN. 3. Franek przychodzi rano do pracy. Bez żadnych informacji od Zdzisia po prostu wykonuje `svn update' i widzi, że nowsza wersja `plik_projektowy.php' została pobrana z serwera. Może porównać wersję aktualną z poprzednią, aby dowiedzieć się jaki zmiany nastąpiły. Dzisiaj Franak dokona swoich zmian i wrzuci plik (commit) na serwer.
Oczywiście, SVN pozwala na więcej niż tylko takie prawie-równoległe prace nad jednym plikiem. Chodziło mi tu jednak o pokazanie samej idei i dwóch najprostszych poleceń: commit (wysyłanie na serwer) i update (pobieranie z serwera). Nie opisałem tu jeszcze równie ważnego na początku `checkout' czy `import', a także celowo pominąłem możliwość konfliktów. O tym napiszę w następnych artykułach. Jak z tego korzystać?KlientJest wiele narzędzi. Na Windowsa najpopularniejszym klientem niezależnym od IDE jest Tortoise. Można także być przekozakiem i używać SVN z wiersza poleceń. W przypadku pracy z Netbeansem, Eclipsem, czy Visual Studio można pobrać odpowiednią wtyczkę pozwalającą zintegrować dane IDE z klientem SVN. SerwerJa najczęśćiej korzystam z google code. W internecie można znaleźć wiele repozytoriów, w których za darmo można trzymać kod. Jeśli chciałbyś zainstalować swój własny serwer SVN na Windowsie to polecam VisualSVN Server.
Co dalejW najbliższym czasie mam zamiar napisać jeszcze trochę o SVN, zarówno o klientach, jak i o serwerach a także o zasadach na jakich się używa tego mechanizmu. Jeśli ktoś nie chciałby czekać, to polecam:
|