Systemy kontroli wersji

Dlaczego kontrola wersji?

  • repozytorium kodu (i nie tylko) z historią zmian
  • mechanizmy współdzielenia pracy 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
  • kopie bezpieczeństwa - możliwość wycofania zmian, powrotu do poprzedniego stanu

Historia zmian projektu

trunk - wersja rozwojowa
branches - odgałęzienia
tags - wersja zamrożona (np. v.1.0)

Repozytoria

  • Subversion (SVN) - architektura klient-serwer (scentralizowana),
    obsługa z VS możliwa dzięki wtyczkom (np. Ankh SVN)
  • Git - architektura rozproszona,
    repozytorium przechowuje pełną historię (klonowanie)
  • TFVC - podobny w architekturze do SVN

Architektura

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

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

Kontrola wersji w VS

  • 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

Źródło: http://msdn.microsoft.com

Więcej informacji