→ Slide 1
Systemy kontroli wersji
↓ Slide 2
Dlaczego kontrola wersji?
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
↓ 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)
TFS Source Control - podobny w architekturze do SVN - domyślny w VS
↓ Slide 5
Architektura
Scentralizowany (SVN, TFS)
Rozproszony (git)
Źródło:
http://git-scm.com
→ Slide 6
Kontrola wersji w VS
↓ Slide 7
Workspace - kopia robocza
folder repozytorium (serwer)
folder lokalny (pliki podlegające rewizjonowaniu)
Workspace - mapowanie folderu serwera i lokalnego
↓ Slide 8
Podstawowe operacje
Menu kontekstowe w Solution Explorer
↓ Slide 9
Source Control Explorer
↓ Slide 10
Synchronizacja plików
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
↓ Slide 11
Zatwierdzanie zmian
Check In
zatwierdzanie zmian (commit) i wysłanie do serwera
Pending Changes
→ kolejny
Changeset
↓ Slide 12
Pozostałe operacje
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)
→ Slide 13
Dodawanie projektu programistycznego do TFS
File → New → Project
Add to Source Control
↓ Slide 14
Operacje na zestawach zmian
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.
↓ Slide 15
Porównanie wersji i plików
↓ Slide 16
Konflikty
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
↓ Slide 17
Rozgałęzienia
Gałęzie i etykiety (Branches and Labels)
→ Slide 18
Więcej informacji
Source control (MSDN)
git - fast version control
TFS Guide for Subversion Users