Artykuł opisuje kilka narzędzi do wersjonowania plików. Pokazuje ich mocne i słabe strony. Ale może od początku.
Narzędzia do wersjonowania plików należą do systemu kontroli wersji. Rozróżniamy dwa typy takich systemów:
scentralizowane,
rozproszone.
Ze względu na zdecydowanie większą popularność tych pierwszych, oraz ze względu na ich profesjonalne zastosowanie, chciałbym się właśnie na nich skupić w tym artykule.
Systemy kontroli wersji scentralizowane, czyli oparte na architekturze klient-serwer charakteryzuje się jednym centralnym repozytorium z którym są połączeni wszyscy użytkownicy. Repozytorium takie pozwala na synchronizowanie lokalnych zmian z wersją obowiązującą (HEAD).
System taki pozwala zatem na współpracę grupy programistów nad jednym projektem i zapewnia że w repozytorium jest zawsze wersja obowiązująca. Na temat zasad działania systemu kontroli wersji powstanie odrębny artykuł. Teraz chciałbym się skupić na narzędziach graficznych, które umożliwiają współpracę z systemem kontroli wersji.
Dwa najbardziej popularne systemy to CVS i Subversion.
CVS (ang. Concurrent Versions System) jest znanym systemem kontroli wersji należącym do projektu GNU (http://www.nongnu.org/cvs/). Jest wykorzystywany jako narzędzie pracy grupowej w wielu projektach programistycznych już od lat 90. XX wieku. Pełni funkcję kontroli i zarządzania kodem programów.
Subversion (SVN) System kontroli wersji, który powstał żeby zastąpić CVS. W wielu przypadkach kompatybilny z tym ostatnim. Strona domowa projektu to: http://subversion.tigris.org/ .Możliwości jakie oferuje to:
Historia zmian nazw katalogów i plików.
Zmiany odnoszą skutek tylko gdy poprawnie zmieniono wszystkie zaznaczone pliki.
Użycie Apache jako serwera, obsługa protokołu WebDAV/DeltaV.
Dostępny samodzielny serwer, gdy użycie Apache jest niemożliwe.
Własny protokół klient/serwer.
Protokół umożliwia przesyłanie różnic w plikach od klienta do serwera i odwrotnie.
Rozmiar przesyłanych danych przy zmianie pliku jest proporcjonalny do rozmiaru zmian, a nie pliku.
Efektywna obsługa plików binarnych.
repozytorium przechowywane w bazie danych lub w systemie plików.
Najbardziej znane nakładki graficzne pod Linuksem na obywa te systemy to: