repozytorium kodu (i nie tylko), kopie bezpieczeństwa - możliwość wycofania zmian

mechanizmy współdzielenia pracy dla członków zespołu, synchronizacja zmian

śledzenie zmian w kodzie, porównywanie różnic w wersjach kodu, patche

rozwój kolejnych wersji i gałęzi oprogramowania oraz mechanizmy łączenia ich

historia rozwoju, dokumentacja zmian w kolejnych wersjach

wersja rozwojowa (trunk)

wersja zamrożona (tags, label)

odgałęzienia (branches)

Subversion (SVN) - architektura klient-serwer (scentralizowany), obsługa z VS możliwa dzięki wtyczkom (np. Ankh SVN)

Git - rozproszony (klonowanie repozytorium, master repository)

TFVC - podobny w architekturze do SVN

Scentralizowany (SVN, TFVC)	Rozproszony (git)
Scentralizowany system kontroli wersji

http://git-scm.com

Team Foundation Version Control (TFVC)

scentralizowany, całe repozytorium znajduje się na jednym (zdalnym) serwerze

kontrola dostępu aż do poziomu pojedynczego pliku

rozgałęzienia to osobne katalogi

git

zdecentralizowany, każdy użytkownik posiada pełną kopię repozytorium

można pracować lokalnie

większość operacji wykonywana lokalnie (szybszy w działaniu od scentralizowanych)

wygodny mechanizm tworzenia gałęzi

elastyczny, możliwość wdrożenia różnych workflow

TFVC	git

http://msdn.microsoft.com

Source control (MSDN)

git - fast version control

TFS Guide for Subversion Users