→ Slide 1

Systemy kontroli wersji

↓ Slide 2

Dlaczego kontrola wersji?

  • 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
↓ Slide 3

Trunk/branch/tag

  • wersja rozwojowa (trunk)
  • wersja zamrożona (tags, label)
  • odgałęzienia (branches)
↓ Slide 4

Repozytoria

  • 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
↓ Slide 5

Architektura

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

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

↓ Slide 6

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

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

↓ Slide 7