Systemy kontroli wersji

Writing /home/grochu/public_html/wiki/data/meta/zajecia/znd_2020_1/source_control_overview.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/grochu/public_html/wiki/data/meta/zajecia/znd_2020_1/sidebar.meta failed

REVEAL theme=simple&size=1024×800

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

<fs x-small>Źródło: http://git-scm.com</fs>

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

<fs x-small>Źródło: http://msdn.microsoft.com</fs>

Więcej informacji