System kontroli wersji
System kontroli wersji to oprogramowanie, które umożliwia śledzenie zmian w kodzie źródłowym, ułatwiając programistom współpracę nad tymi samymi plikami w różnych momentach czasu.
Podział systemów kontroli wersji
Systemy kontroli wersji można klasyfikować według:
- architektury oprogramowania
- licencji oprogramowania
- sposobu oceny zmian
Architektura systemów
Wyróżniamy trzy główne typy systemów kontroli wersji:
- lokalne – zapisują dane jedynie na lokalnym komputerze (np. RCS)
- scentralizowane – opierają się na architekturze klient-serwer (np. CVS, Subversion)
- rozproszone – działają na zasadzie P2P (np. Git)
Wybór odpowiedniego systemu zależy od potrzeb projektu. Systemy lokalne przechowują wersje plików tylko na jednym komputerze, podczas gdy scentralizowane korzystają z centralnego repozytorium, a rozproszone pozwalają na niezależne gałęzie synchronizowane między sobą.
Sposób oceny zmian
Systemy kontroli wersji różnią się także metodą oceniania zmian. Niektóre działają na poziomie pojedynczych zmian w plikach, inne na zbiorach zmian, co pozwala na śledzenie modyfikacji nawet po zmianie nazw lub lokalizacji plików.
Przykłady systemów kontroli wersji
- Wolnodostępne:
- Lokalne: RCS, GNU Source Code Control System
- Scentralizowane: CVS, Subversion
- Rozproszone: Git, Mercurial, Bazaar
- Zamknięte:
- Lokalne: SCCS
- Scentralizowane: Rational ClearCase, Visual SourceSafe
- Rozproszone: BitKeeper, Perforce
Przykłady systemów
RCS jest jednym z najprostszych systemów, działającym na pojedynczych plikach lokalnie. CVS, będący bardziej zaawansowaną wersją, umożliwia zarządzanie zmianami całego projektu, ale ma pewne ograniczenia, takie jak brak atomowości operacji. Subversion (SVN) został stworzony, aby poprawić te niedociągnięcia, oferując atomowe transakcje oraz lepsze zarządzanie zmianami nazw plików.