Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy kontroli wersji Sebastian Wojczyk

Podobne prezentacje


Prezentacja na temat: "Systemy kontroli wersji Sebastian Wojczyk"— Zapis prezentacji:

1 Systemy kontroli wersji Sebastian Wojczyk

2 Plan wykładu 2 Kilka dat z historii, Przydane pojęcia, Do czego służą systemy kontroli wersji, Architektury systemów kontroli wersji, Najbardziej znane systemy kontroli wersji, System kontroli wersji GIT, Ogólne informacje, instalacja, konfiguracja, Tworzenie repozytorium, Statusy i cykl życia plików, Praca z repozytorium lokalnym, Praca z repozytorium zdalnym,

3 Rys historyczny – system UNIX, 1972 – język C, 1976 – diff, 1982 – RCS, 1983 – język C++, 1986 – patch, 1986 – CVS, 1991 – system Linux, 2000 – SVN, 2000 – język C#, 2003 – system Linux – jądro w wersji 2.6, 2005 – GIT,

4 Definicja 4 System kontroli wersji - oprogramowanie służące do śledzenia zmian głównie w kodzie źródłowym oraz pomocy programistom w łączeniu zmian dokonanych w plikach przez wiele osób w różnych momentach czasowych. Repozytorium - miejsce uporządkowanego przechowywania dokumentów (definicja ogólna), w przypadku systemów kontroli wersji miejsce przechowywania plików wraz z informacjami o wszystkich zarejestrowanych zmianach, Rewizja/Wersja - stan plików po wykonaniu określonej liczby zmian, każda operacja zapisu do repozytorium tworzy nową rewizję, Kopia robocza – kopia plików (najczęściej początkowo pobrana z repozytorium) służąca bieżącej pracy. Kopia robocza jest w pełni prywatna. Dokonane w niej zmiany mogą być zapisane do repozytorium.

5 Główne zadania 5 Przechowuje bieżący stan projektu, Pomaga synchronizować pracę grupy programistów, Przechowuje historię zmian w projekcie, Pozwala przeglądać historię zmian projektu, Automatyzuje wiele czynności programistów, Porównywanie plików, Śledzenie zmian: zakres zmian, czas wprowadzenia, autora, Ułatwia zarządzanie wydaniami i wersjami projektu, Umożliwia tworzenie gałęzi projektu, Ułatwia poszukiwanie błędów.

6 Systemy lokalne 6

7 Systemy scentralizowane 7

8 Systemy rozproszone 8

9 Narzędzia wspomagające 9 diff – program komputerowy działający w konsoli, wyświetlający różnice między dwoma plikami tekstowymi na poziomie poszczególnych wierszy. Ukazuje które wiersze występują w obu plikach, a które są unikalne. wiersze wspólne dla porównywanych plików nie są oznaczane, wiersze występujące tylko w pierwszym pliku są oznaczane -, wiersze występujące tylko w drugim pliku są oznaczane +, Czasami znaki -/+ zamieniane są na znaki >/<, wdiff – wersja diff operująca na pojedynczych słowach, patch – program komputerowy działający w konsoli, służący do zakładania/nakładania patchy (łat, łatek).

10 Popularne systemy RCS Revision Control System 10 RCS - Revision Control System Kontrola zmian w pojedynczych plików, Możliwość opisu każdej zmiany, Możliwość śledzenia i przeglądania zmian, Rozgałęzianie wersji (ang. branching), Scalanie wersji (ang. merging), Automatyczne porównywanie i scalanie plików, Praca nad projektem w jednej lokalizacji (system lokalny), Podstawowe blokowanie dostępu (ang. locking),

11 Popularne systemy CVS Concurrent Versions System 11 Podstawowe funkcje wzięte jak w RCS, Zarządzanie dużymi projektami (tysiące plików), Równoległa praca nad tymi samymi plikami, Synchronizacja równoczesnych zmian przez wielu autorów, Centralne repozytorium dla całego projektu, Decentralizacja i rozproszenie pracy autorów, Synchronizacja repozytoriów z użyciem sieci, Złożona konfiguracja i zarządzanie repozytorium,

12 Popularne systemy SVN Subversion 12 Rejestruje historię dodatkowych informacji o pliku, nazwa, atrybuty, położenie, Dodatkowe dowolnie zdefiniowane atrybuty, Obsługa historii folderów, Atomowość transakcji na wielu plikach, Śledzenie operacji na plikach: Tworzenie, Kopiowanie, Przenoszenie, Zmiana nazwy, Usuwanie, Implementacja w postaci modułu serwera Apache (dostępność),

13 Popularne systemy GIT 13 Rozproszenie systemu – każde repozytorium jest pełnowartościowe, Przyspieszenie pracy przy dużych projektach (większość operacji to praca lokalna), Prostota konstrukcji, Dwustopniowa historia plików (lokalna i globalna), Możliwość pracy offline (na lokalnym repozytorium), Możliwość edycji zmian (opis, dodanie czy wyłączenie pliku), Możliwość wycofywania zmian,

14 Przechowywanie historii zmian 14 RCS CVS SVN Git

15 GIT – instalacja 15 System dedykowany dla systemu Linux, Można korzystać pod Windows Emulator Linux (Cygwin), Konsola bash, Podstawowe GUI Uruchamiane menu kontekstowym w katalogu repozytorium, Strona domowa projektu

16 GIT – wstęp 16 git config user.name "Jan Nowak" git config user. Ustawia identyfikator użytkownika i adres mailowy, Informacje służące do określania autorów zmian w repozytorium, Opcja --global pozwala zrobić te ustawienia dla całego systemu, git config user.name Wyświetla aktualną nazwę użytkownika, git config --list Wyświetla aktualną pełną konfigurację repozytorium, git help Wyświetla tekst pomocy dla polecenia (w przeglądarce).

17 GIT – tworzenie repozytorium 17 git init Inicjuje nowe repozytorium w bieżącej lokalizacji, Tworzy katalog.git który przechowuje repozytorium, git add plik1.cc Dodanie pojedynczego pliku do poczekalni, git add *.cs Dodanie grupy plików do poczekalni zgodnie z wyrażeniem, git add –all Dodanie wszystkich plików do poczekalni, git commit -m ’zainicjowane repozytorium’ Zapisanie do repozytorium wszystkich plików wcześniej dodanych do poczekalni ze wskazanym komentarzem, git clone protokół://adres Klonowanie istniejącego repozytorium, Protokoły: git, http, https, (z użyciem ssh)

18 GIT – statusy plików 18 Pliki nieśledzone, Pliki których nie chcemy zapamiętywać i śledzić ich historii, Pliki tymczasowe, Kopie zapasowe plików, Pliki śledzone, Niezmodyfikowane, Zawartość zgodna z ostatnio zapamiętaną w repozytorium wersją, Zmodyfikowane, Zawartość zmieniona w stosunku do ostatnio zapamiętanej w repozytorium wersji, W przechowalni, Plik oznaczony jako gotowe do zapisania w następnej wersji,

19 GIT – cykl życia plików 19 git status Sprawdzenie statusu plików

20 GIT – pliki nieśledzone 20 Pliki które nie są analizowane przez GITa (nie dodane do śledzenia), Można wymusić ignorowanie pewnych plików Pliki konfiguracyjne do ignorowania plików lub katalogów,.git/info/exclude.gitignore Nazwy konkretnych plików, Nazwy konkretnych katalogów, Nazwy ścieżkowe „od bieżącego katalogu”, Wyrażenia regularne do nazw plików i katalogów, *.bak – wszystkie pliki „bak” w bieżącym katalogu, /bak/* – wszystkie pliki w katalogu bak /bak/** – wszystkie pliki w katalogu bak i jego podkatalogach **/*.bak – wszystkie pliki „ bak” w dowolnym podkatalogu Można negować wyrażenia rozpoczynając znakiem !

21 GIT – pliki śledzone 21 git add Dodanie nowych plików do śledzenia i do poczekalni, Dodanie już śledzonych plików do poczekalni (w chwili wykonania polecenia), git diff Pokazuje różnice pomiędzy śledzonymi plikami a poczekalnią/repozytorium, git diff Pokazuje różnice pomiędzy wskazanym plikiem a poczekalnią/repozytorium, git diff HEAD Pokazuje różnice pomiędzy wskazanym plikiem roboczym a repozytorium, git diff HEAD^ Pokazuje różnice pomiędzy wskazanym plikiem roboczym a repozytorium (poprzednia wersja), git diff --cached lub git diff --staged Pokazuje różnice pomiędzy plikami z poczekalni a repozytorium, git rm Usuwa fizycznie plik z dysku i przekazuje operację usunięcia do poczekalni, git rm --cached lub git rm --staged Usuwa plik z plików śledzonych i przekazuje operację usunięcia do poczekalni; nie usuwa fizycznie pliku z dysku (przydatne gdy chcemy plik np. ignorować), git mv Zmienia nazwę pliku na nową i przekazue operację zmiany do poczekalni równoważne z ciągiem pleceń „mv ; git rm ; git add ”,

22 GIT – zatwierdzanie zmian 22 git commit Wysyła do repozytorium pliki z poczekalni, git commit –v Dodatkowo w komentarzu dodaje pełnego diffa zmienionych plików, git commit –a Pomija poczekalnię i dodaje do repozytorium wszystkie zmodyfikowane śledzone pliki, git commit –m ’ tekst’ Z linii komend pozwala ustalić tekst komentarza dla zapisu do repozytorium.

23 GIT – przegląd historii 23 git log Listuje wszystkie zmiany w kolejności od najnowszych do najstarszych, git log Listuje zmiany dotyczące wskazanego pliku w kolejności od najnowszych do najstarszych, git log -p Opcja -p dodatkowo wyświetla diff dla każdej zmiany, git log -3 Opcja -3 wyświetla tylko 3 ostatnie wpisy, git log --stat Opcja --stat wyświetla statystyki zmian Ilości plików zmienionych, dodanych, usuniętych, Ilości nowych „wstawek” i „usunięć” w plikach (diff), git log --author Wyświetla zmiany danego autora,

24 GIT – przegląd historii 2 24 git log --pretty=oneline Wyświetla skróty i komentarze do kolejnych rewizji, git log --pretty=format:"%ar : %s" Wyświetla raport w zadanym formacie (ar – autor, s – komentarz), Dostępnych wiele innych predefiniowanych zmiennych, git log --since=2.weeks Wyświetla zmiany z ostatnich dwóch tygodni, git log --since=" " –until=" " Wyświetla zmiany z zadanego okresu, I wiele innych opcji

25 GIT – wycofywanie zmian 25 git reset HEAD Usunięcie pliku z poczekalni (teraz jest tylko śledzony), git checkout Przywrócenie pliku do stanu z ostatniej rewizji (ostatni commit), git checkout HEAD^ Przywrócenie pliku do stanu z przed-ostatniej rewizji, git checkout HEAD^^ Przywrócenie pliku do stanu z przed-przed-ostatniej rewizji, git commit --amend Ponowienie operacji commit z uwzględnieniem aktualnej poczekalni; Jeśli w poczekalni nic się nie zmieniło to tylko możliwość zmiany komentarza,

26 GIT – zdalne repozytoria 26 git remote Wyświetla nazwy zarejestrowanych zdalnych repozytoriów, git remote -v Wyświetla nazwy zdalnych repozytoriów i ich pełne URL-e, git remote add Dodaje nowy wpis do listy zdalnych repozytoriów, git push Wypycha zmian z lokalnego do zdalnego repozytorium git fetch Pobiera zmiany ze zdalnego do lokalnego repozytorium git pull Pobiera zmiany ze zdalnego do lokalnego repozytorium i dodatkowo scala je (merge) z naszą kopią roboczą,

27 GIT – bibliografia 27 Scott Chackon, Pro Git, Dokumentacja systemu GIT


Pobierz ppt "Systemy kontroli wersji Sebastian Wojczyk"

Podobne prezentacje


Reklamy Google