repozytorium kodu (i nie tylko), kopie bezpieczeństwa

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)

TFS Source Control - podobny w architekturze do SVN - domyślny w VS

Scentralizowany (SVN, TFS)	Rozproszony (git)
Zcentralizowany system kontroli wersji

Źródło: http://git-scm.com

folder repozytorium (serwer)

folder lokalny (pliki podlegające rewizjonowaniu)

Workspace - mapowanie folderu serwera i lokalnego

Menu kontekstowe w Solution Explorer

Check In wysłanie lokalnej wersji do repozytorium (commit)

Get Latest Version pobieranie najnowszej wersji plików (uwaga: nie nadpisuje lokalnych zmian)

Get Specific Version pobieranie konkretnej wersji z historii (changeset, data, etykieta)

View Pending Changes lista zmian naniesiona lokalnie i oczekująca na zatwierdzenie

Check Out for Edit pobranie plików z repozytorium i zablokowanie dla innych użytkowników

Undo Pending Changes cofanie zaplanowanych do zatwierdzenia zmian

View History przeglądanie historii zmian

Check In zatwierdzanie zmian (commit) i wysłanie do serwera

Pending Changes -> kolejny Changeset

przeglądanie plików w repozytorium, dodawanie, usuwanie i zmiana nazwy i położenia plików i katalogów

Lock/unlock - blokowanie plików i katalogów

rozwiązywanie konfliktów

porównanie różnych wersji plików i katalogów

tworzenie gałęzi (Branch) i łączenie gałęzi (Merge)

odkładanie na półkę (Shelve)

etykiety (labels) - wersje zamrożone

adnotacje (Annotate)

właściwości plików i katalogów

usuwanie zmian naniesionych w wybranych zestawach zmian (Rollback)

File -> New -> Project

Add to Source Control

lista plików i zmian w każdej wersji

porównywanie dowolnych wersji

pobieranie dowolnej wersji pliku

jakie zmiany w pliku naniósł dany użytkownik (Annotate)

historia zmian: rozdzielenia, łączenia, zmiany nazw, itp.

Niemożliwe do pogodzenia jednoczesne zmiany w tym samym miejscu

Domyślnie AutoResolve All

Ręczne usuwanie konfliktów, wybór wersji lokalnej lub ostatniej z serwera

Gałęzie i etykiety (Branches and Labels)

Source control (MSDN)

git - fast version control

TFS Guide for Subversion Users