System kontroli wersji
Z Wikipedii
System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy programistom w łączeniu i modyfikacji zmian dokonanych przez wiele osób w różnych momentach.
Systemy kontroli wersji można podzielić na scentralizowane, oparte o architekturę klient-serwer (np. CVS, Subversion) i rozproszone, oparte o architekturę P2P (np. BitKeeper, svk). W tych pierwszych istnieje jedno centralne repozytorium, z którym wszyscy użytkownicy systemu synchronizują swoje zmiany, a te drugie pozwalają na prowadzenie równoprawnych, niezależnych gałęzi, które można dowolnie synchronizować ze sobą nawzajem. Wybór odpowiedniego typu systemu kontroli wersji zależy od potrzeb projektu.
Niektóre systemy kontroli wersji operują na poziomie zmian zawartości plików, podczas gdy inne na zestawach zmian (ang. changeset). Użycie mechanizmu zestawu zmian umożliwia śledzenie zmian, nawet gdy pliki w projekcie zmieniają swoje nazwy i położenie w katalogach.
Jednym z najprostszych systemów kontroli wersji jest RCS (Revision Control System), który operuje na pojedynczych plikach. Przykładowo historia zmian pliku o nazwie plik przechowywana jest w pliku plik,v.
Bardziej zaawansowany jest system CVS (Concurrent Versions System), który umożliwia zarządzanie zmianami całego przedsięwzięcia. CVS został zaimplementowany pierwotnie jako nadbudowa nad RCS i wykorzystuje ten sam format plików wersji (pliki z przyrostkiem ,v). CVS umożliwia m.in. współbieżną pracę wielu programistów, tworzenie odgałęzień (branch), rozwiązywanie konfliktów wersji. CVS ma też pewne ograniczenia, np. metadane o plikach nie są wersjonowane, a zatwierdzanie zmian wielu plików nie jest atomowe (w przypadku np. awarii połączenia może zostać zatwierdzona tylko część zmian).
Aby wyeliminować wady CVS powstał system Subversion, zwany również SVN. Subversion jest bardzo podobny w obsłudze do CVS, ale oferuje szereg udogodnień, takich jak atomowe transakcje, wersjonowanie zmian nazwy plików czy efektywne wersjonowanie plików binarnych. Do przechowywania zmian zastosowana została baza danych Berkeley DB.
[edytuj] Zobacz też
- Wolnodostępne systemy kontroli wersji
- Scentralizowane
- RCS
- CVS
- Subversion
- GNU CSSC, klon SCCS
- Rozproszone
- Scentralizowane
- Zamknięte (własnościowe) systemy kontroli wersji
- BitKeeper firmy BitMover
- Perforce firmy Perforce Software
- Rational ClearCase
- Sablime firmy Lucent Technologies
- StarTeam firmy Borland
- Visual SourceSafe firmy Microsoft