Spis treści
Ten rozdział to nieco zmieniona wersja takiego samego rozdziału w książce Subversion. Elektroniczna wersja książki Subversion dostępna jest tutaj: http://svnbook.red-bean.com/.
Ten rozdział jest krótkim, zdawkowym wprowadzeniem do Subversion. Jeśli jesteście świeży w kontroli wersji, rozdział ten jest zdecydowanie dla Was. Zaczniemy od omówienia ogólnej koncepcji kontroli wersji, rozpracujemy charakterystyczne idee kryjące się za Subversion i pokażemy kilka prostych przykładów z użycia systemu.
Choć przykłady w tym rozdziale pokazują ludzi współdzielących zbiory z kodem źródłowym programu, należy pamiętać, że Subversion może zarządzać jakąkolwiek kolekcją plików - narzędzie nie jest ograniczone do wspomagania programistów.
Subversion to scentralizowany system wymiany informacji. U jego podstaw znajduje się repozytorium, które jest centralnym magazynem danych. Repozytorium przechowuje informacje w formie drzewa plików - typowej hierarchia plików i katalogów. Dowolna liczba klientów łączy się z repozytorium, a następnie odczytuje lub zapisuje te pliki. Zapisując dane, klient sprawia, że informacje stają się dostępne dla innych; przez odczyt danych klient otrzymuje informacje od innych.
Więc dlaczego ma to być interesujące? Na razie brzmi to jak definicja typowego serwera plików. I rzeczywiście, repozytorium jest swego rodzaju serwerem plików, ale nie takim, z jakim się zwykle stykasz. Tym co sprawia, że repozytorium SVN specjalne jest, że pamięta każdą zmianę, jaką kiedykolwiek w nim zapisano: każdą zmianę każdego pliku, a nawet zmiany w samym drzewie katalogów, takie jak dodanie, usunięcie i przegrupowanie plików i katalogów.
Gdy klient odczytuje dane z repozytorium, to zwykle widzi tylko ostatnią wersję drzewa katalogów. Ale klient ma również możliwość przeglądania poprzednich stanów systemu plików. Na przykład, klient może zadać historyczne pytania typu „ co zawierał ten katalog w ostatnią środę?” lub „ kto był ostatnią osobą, zmieniającą ten plik, i jakie zmiany zrobił? ”. To są rodzaje pytań, które znajdują się w centrum każdego systemu kontroli wersji: tj systemu, który jest przeznaczony do rejestracji i śledzenia zmian danych w czasie.