Systemy kontroli wersji
Systemy kontroli Wersji
- Subversion (SVN) - architektura klient - serwer (scentralizowany)
- Git - rozproszony (klonowanie repozytorium, master repository)
- TFS Source Control - podobny w architekturze do SVN
Źródło: http://git-scm.com
Wersjonowanie plików
Żródło: http://svnbook.red-bean.com
Workspace - kopia robocza
- folder repozytorium (serwer)
- folder lokaly (pliki podlegające rewizjonowaniu)
- Workspace - mapowanie folderu serwera i lokalnego
Podstawowe operacje
- Menu kontekstowe w Solution Explorer
- Source Control Explorer
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żytkoników
- Undo Pending Changes cofanie zaplanowanych do zatwierdzenia zmian
- View History przeglądanie historii zmian
Zatwierdzanie zmian
- Check In zatwierdzanie zmian (commit) i wysłanie do serwera
- Pending Changes → kolejny Changeset
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)
Dodawanie projektu programistycznego do TFS
- File → New → Project
- Add to Source Control
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.
Porównanie wersji i plików
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
Rozgałęzienia
- Gałęzie i etykiety (Branches and Labels)