thumb|Przykład historii kontroli wersji projektu System kontroli wersji () – oprogramowanie służące do śledzenia zmian głównie w kodzie źródłowym oraz pomocy programistom w łączeniu zmian dokonanych w plikach przez wiele osób w różnym czasie.

Podział Systemy kontroli wersji dzielone są według: architektury oprogramowania licencji oprogramowania sposobu oceny zmian

Architektura Systemy kontroli wersji dzielą się na: lokalne, pozwalające na zapisanie danych jedynie na lokalnym komputerze (np. oraz RCS) scentralizowane, oparte na architekturze klient-serwer (np. CVS, Subversion) , oparte na architekturze P2P (np. BitKeeper, , Git, svk).

Pierwsza grupa zapisuje jedynie wersje plików z lokalnego komputera. W rozwiązaniach scentralizowanych istnieje jedno centralne repozytorium, z którym wszyscy użytkownicy systemu synchronizują swoje zmiany. Rozwiązania rozproszone pozwalają na prowadzenie równoprawnych, niezależnych gałęzi, które można dowolnie synchronizować ze sobą nawzajem, np. poprzez e-mail (Code Co-op). Wybór odpowiedniego typu systemu kontroli wersji zależy od potrzeb projektu.