~~NOCACHE~~ ~~REVEAL theme=simple&size=1024x800~~ ====== 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) | {{zajecia:znd_2020_1:revision_control.png?200}}| ===== Repozytoria ===== * Subversion (SVN) - architektura klient-serwer (scentralizowana), \\ obsługa z VS możliwa dzięki wtyczkom (np. {{https://ankhsvn.open.collab.net/|Ankh SVN}}) * **Git** - architektura rozproszona, \\ repozytorium przechowuje pełną historię (klonowanie) * **TFVC** - podobny w architekturze do SVN ===== Architektura ===== ^ Scentralizowany (SVN, TFVC) ^ Rozproszony (git) ^ |{{http://git-scm.com/figures/18333fig0102-tn.png?300|Scentralizowany system kontroli wersji}} | {{http://git-scm.com/figures/18333fig0103-tn.png?300}}|\\ Ź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// ===== ====== ^ [[source_control_tfs|TFVC]] ^ [[source_control_git|git]] ^ |{{https://i-msdn.sec.s-msft.com/dynimg/IC687893.png}}|{{https://i-msdn.sec.s-msft.com/dynimg/IC721397.png}}| Źródło: http://msdn.microsoft.com ===== Więcej informacji ===== * [[https://docs.microsoft.com/en-us/azure/devops/user-guide/source-control?view=azure-devops|What is source control?]] * [[http://git-scm.com/|git - fast version control]] * [[git_vs|Git w Visual Studio i Azure Repos]]