Artykuł

mar 21 2010
0

Scentralizowane systemy kontroli wersji na przykładzie Tortoise SVN

Systemy kontroli wersji, przez wiele osób kojarzone są z dużymi firmami najczęściej zajmującymi się tworzeniem oprogramowania. Choć często tak jest w istocie, nie znaczy to, że nie można tych systemów wykorzystywać w inny sposób, choćby nawet w domowym zaciszu do wersjonowania ważnych dokumentów, projektów, aplikacji czy stron internetowych, które tworzymy we własnym zakresie. W dzisiejszym artykule, opiszę jak postawić swój własny system kontroli wersji używając do tego aplikacji Tortoise SVN.

Idea systemów kontroli wersji

Jak już wspomniałem we wstępie, stereotyp związany z systemami kontroli wersji jest taki, że znajdują one zastosowanie szczególnie w przypadku dużych projektów programistycznych. Jest to związane między innymi z koniecznością podziału pracy oraz możliwością wersjonowania tworzonego kodu. W momencie, gdy nad określoną aplikacją pracuje rzesza programistów, system kontroli wersji pozwala na unikanie konfliktów, sprawne łączenie tworzonego kodu, tworzenie niezależnych wersji, a także możliwość korzystania z wcześniejszych wersji określonego dokumentu. Dlatego w każdym szanującym się zespole programistów, taki system po prostu musi funkcjonować.

Ponieważ wydaję mi się, że powyższy akapit powinien dać Wam mniej więcej jakieś pojęcie czym jest system kontroli wersji, to przejdźmy teraz do podziału jaki narodził się wśród tych systemów. Wyróżniamy dwie zasadnicze grupy:

  • Systemy scentralizowane
  • Systemy zdecentralizowane

Systemy należące do grupy pierwszej, cechują się tym, że jest jedno, centralne miejsce, w którym składowane są wszystkie pliki (repozytorium) i wszyscy klienci łączą się z tym miejscem (serwerem) pobierają/aktualizują/dodają pliki. Systemy te w tej chwili cieszą się bardzo dużą popularnością, a przykładem takiego systemu jest tytułowy TortoiseSVN.

Druga rodzina systemów - systemy zdecentralizowane, zaczęła się popularyzować stosunkowo niedawno. Ideą takich systemów, jest tworzenie czegoś na kształt lokalnych repozytoriów na każdej ze stacji roboczych podłączonych do sieci (po prostu zdecentralizowanie danych). Dzięki temu, trudniej stracić dane niż w przypadku sieci scentralizowanej, ale bardziej trzeba troszczyć się o bezpieczeństwo każdej ze stacji. Przykładem takiego systemu, jest open source'owy Git robiący w ostatnim czasie ogromną furorę.

Pobieranie oraz instalacja TortoiseSVN

Aplikację zarówno w wersji 32 jak i 64bitowej, możemy pobrać ze strony producenta, tam też dostępne są pliki językowe, w tym język Polski. Po instalacji powinniśmy zrestartować komputer.

Po restarcie komputera, menu kontekstowe naszego systemu, powinno zostać wzbogacone o nowe opcje widoczne na screenie 1.

Tworzenie repozytorium

Po instalacji aplikacji, przyszedł czas na utworzenie repozytorium. Jeśli mamy możliwość, warto to zrobić na odrębnej maszynie. Jeśli nie mamy takiej możliwości, warto utworzyć repozytorium na innej niż systemowa partycja, a najlepiej na innym dysku jeśli taki posiadamy.

Aby utworzyć repozytorium, zakładamy nowy katalog, np. SVN a następnie klikamy na niego prawym przyciskiem myszy i z menu kontekstowego wybieramy sekcję TortoiseSVN, a następnie opcję Twórz repozytorium tutaj. Repozytorium zostanie utworzone. Warto w tym momencie zapamiętać ścieżkę do repozytorium. W moim przypadku jest to F:\SVN. Zawartość poprawnie utworzonego przez Tortoise repozytorium widoczna jest na screenie 3.

Przeglądanie repozytorium

Skoro już mamy repozytorium, warto by przejrzeć jego zasoby. Możemy to zrobić w sposób następujący. Klikamy w dowolnej lokalizacji (np. na pulpicie) prawym przyciskiem myszy i z menu kontekstowego wybieramy sekcję TortoiseSVN, a następnie Przeglądarka repozytorium.

W okienku, które pojawi się na ekranie wprowadzamy ścieżkę do naszego nowo utworzonego repozytorium. W moim przypadku jest to:

file:///F:/SVN/

Gdzie moją ścieżkę do repozytorium należy zastąpić swoją własną. Na ekranie powinno się ukazać okienko widoczne na screenie 4. Jak widzimy, nasze repozytorium jak na razie jest puste.

Dodawanie elementów do repozytorium

Ponieważ nasze repozytorium jest puste, czas zmienić ten stan rzeczy. Będąc w przeglądarce repozytorium, klikamy na główny katalog repozytorium prawym przyciskiem myszy i wybieramy jedną z opcji:

  • Utwórz folder
  • Dodaj plik
  • Dodaj folder

Dzięki tym poleceniom, możemy dodać interesujące nas dane do repozytorium. Moje prywatne repozytorium, wygląda np. tak jak na screenie 5.

Pobieranie elementów z repozytorium

Aby pobrać określony projekt/dokument z repozytorium, warto najpierw go odnaleźć za pomocą przeglądarki repozytorium, w znany już przez nas sposób. Aktualna ścieżka, cały czas widoczna jest w górnym oknie przeglądarki. Kiedy znajdziemy się w interesującym miejscu, kopiujemy ścieżkę do wybranego katalogu z paska adresu.

W kolejnym kroku, należy utworzyć nowy folder na lokalnym dysku, do którego pobierzemy dane. Następnie klikamy na niego prawym przyciskiem myszy i z menu kontekstowego wybieramy opcję SVN Pobierz.

Na ekranie pojawi się okienko widoczne na screenie 6. W polu Adres URL repozytorium, należy wkleić link wyszukany za pomocą Przeglądarki repozytorium. W polu Katalog docelowy, powinien znajdować utworzony się przez nas nowy katalog. Jeśli wszystko jest ok, pliki zostaną pobrane.

Praca z TortoiseSVN

Po pobraniu projektu z repozytorium, powinniśmy ujrzeć nasz folder z charakterystyczną zieloną ikonką oznaczającą, że wszystkie zmiany w naszym lokalnym katalogu zostały zapisane.

Kiedy klikniemy na nowo pobrany katalog prawym przyciskiem myszy w menu kontekstowym dostępne będą nowe opcje:

  • SVN Uaktualnij
  • SVN Zatwierdź zmiany
  • TortoiseSVN

Pierwsza opcja pozwala na pobranie najnowszych wersji plików z centralnego repozytorium. Jeśli nic nie zostało zmienione przez naszych współpracowników, to TortoiseSVN jest na tyle inteligentny, ze nic nie pobierze.

Druga opcja, pozwala na zatwierdzanie wprowadzonych przez nas zmian (zmiany są wtedy, kiedy ikonka katalogu głównego staje się czerwona). Operacja ta często, nazywana jest również angielskim słowem commit. Po wybraniu tej opcji, pojawia się okienko, w którym możemy zapisać w repozytorium wprowadzone przez nas zmiany (screen 7). W górnej części okna, należy wprowadzić komentarz, informujący naszych współpracowników (lub nas samych), co w danej iteracji zostało zmienione. Na dole, widoczna jest lista zmienionych plików. Po kliknięciu na dowolny plik dwukrotnie lewym przyciskiem myszy, pojawi się okno porównywania plików, w którym podejrzeć możemy wprowadzone zmiany. Okno to jest dostępne głównie dla plików, wypełnionych czystym tekstem, czyli np. plików zawierających kod źródłowy.

Ostatnia opcja dostępna w menu kontekstowym (screen 8), to tak właściwie kolejne pod menu, zawierające dodatkowe opcje związane z pracą repozytorium. Są to kolejno:

  • Pokaż log - pozwala na podejrzenie logu wszystkich operacji przeprowadzanych na wybranym elemencie
  • Przeglądarka repozytorium
  • Sprawdź zmiany - wyświetla okno podglądu z listą wprowadzonych zmian
  • Pokaż wykres wersji
  • Rozwiązany - w sytuacji, kiedy w repozytorium pojawił się konflikt (w wyniku pracy kilku osób nad wybranym elementem), a następnie został rozwiązany, to możemy powiadomić o tym system korzystając z tej opcji
  • Uaktualnij do wersji - opcja pozwala na aktualizację elementu, do wybranej jego wersji zapisanej w repozytorium
  • Wycofaj zmiany - opcja pozwala wycofać wprowadzone przez nas zmiany aż do ostatniego commita
  • Uporządkuj - jeśli repozytorium nie pozwala na zapisanie zmian, np. w wyniku jakiś błędów, możemy skorzystać właśnie z tej opcji
  • Zablokuj oraz Zdejmij blokadę - opcje pozwalające na blokadę wybranych plików przed edycją
  • Utwórz gałąź/etykiętę - opcja pozwala na tworzenie gałęzi projektu, w których wprowadzona będą np. eksperymentalne opcje
  • Przełącz - opcja pozwala na przeniesienie pobranego katalogu
  • Scalaj - jeśli tworzyliśmy nowe gałęzie w projekcie, opcją Scalaj możemy je połączyć
  • Eksportuj - bardzo przydatna opcja, pozwala na wyeksportowanie najnowszej wersji projektu do wybranego przez nas katalogu
  • Zmień lokalizację - opcja pozwala na zmianę lokalizacji na poziomie drzewa SVN
  • Dodaj - polecenie pozwala na dodawanie nowych plików oraz folderów do projektu

Pozostałe opcje w tym menu, mają już mniejsze znaczenie, dlatego pominąłem ich opis.

Ważne uwagi

Opis umieszczony w powyższych akapitach, powinien dać podstawowe pojęcie na temat pracy z repozytorium. Pracując z repozytorium, należy pamiętać, że każda z operacji taka jak dodawanie, zmienianie nazwy, przenoszenie plików, tworzenie katalogów, usuwanie plików itp. powinna być wykonywana przy pomocy aplikacji TortoiseSVN. Ciekawą opcją, która została pominięta w powyższym opisie jest możliwość dodawania plików do ignorowanych. Dzięki czemu, nie będą one zapisywane w repozytorium. Jest to np. przydatne dla skompilowanych plików binarnych aplikacji, których przechowywanie w repozytorium mijało by się z celem.

WinMerge - porównywanie plików

Chociaż TortoiseSVN, posiada wbudowaną aplikację pozwalającą na podglądanie wprowadzonych zmian, czasem warto skorzystać z zewnętrznej aplikacji, którą można spiąć z TortoiseSVN. Jednym z takich programów jest WinMerge, który można pobrać np. ze strony Dobrych programów.

Podsumowanie

Dzisiejszy artykuł, miał ukazać możliwości jakie dają systemy kontroli wersji na przykładzie jednej z najbardziej popularnych aplikacji tego typu czyli TortoiseSVN. Nie jest to rodzaj jakiegoś podręcznika, ale raczej wprowadzenie do kilku z wielu opcji jakie oferuje ten system. Najlepiej jest poeksperymentować samemu, ale oczywiście najpierw na danych, których utrata nie niesie dla nas jakiegoś ryzyka.

W przypadku systemów kontroli wersji, warto również tworzyć co jakiś czas kopię zapasową repozytorium np. na dysku zewnętrznym. Aby tego dokonać, wystarczy skopiować po prostu katalog repozytorium.

Data ostatniej modyfikacji: 19.11.2011, 12:50.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus