Systemy kontroli wersji - .SVN vs Git Dwa najpopularniejsze systemy kontroli wersji. SVN Git...

download Systemy kontroli wersji - .SVN vs Git Dwa najpopularniejsze systemy kontroli wersji. SVN Git •

of 20

  • date post

    27-Feb-2019
  • Category

    Documents

  • view

    216
  • download

    0

Embed Size (px)

Transcript of Systemy kontroli wersji - .SVN vs Git Dwa najpopularniejsze systemy kontroli wersji. SVN Git...

Programowanie Zespoowe

Systemy kontroli wersji

dr Rafa Skinderowiczmgr in. Micha Maliszewski

Systemy kontroli wersji

ledzenie zmian, np.: w kodzie rdowym

czenie zmian dokonanych w plikach

Uatwienie wsppracy wielu osb nad tymi samymi danymi

Synchronizacja w czasie

Architektura moduowa

Rodzaje systemw kontroli wersjiZe wzgldu na architektur:

Lokalne zapisuj dane jedynie na lokalnym komputerze (np. RCS)

Scentralizowane oparte o architektur klient-serwer (np. SVN)

Rozproszone oparte o architektur P2P (np. Git, Mercurial)

SVN vs GitDwa najpopularniejsze systemy kontroli wersji.

SVN Git

System scentralizowany Globalne repozytorium danych Prosty w obsudze Stay dostp do centralnego

repozytorium Wsparcie dla wszystkich platform oraz

IDE Powolny Brak restrykcji Intuicyjna numeracja rewizji Operacje na fragmentach

repozytorium (checkout)

System rozproszony Lokalne oraz globalne repozytorium Skomplikowany w obsudze Nie wymaga staego dostpu do

gwnego repozytorium Sabe wsparcie platformy Windows Szybki* Numeracja rewizji poprzez SHA-1 Operacje na caym repozytorium

(checkout) Mniejszy rozmiar repozytorium atwiejsze czenie gazi (merge)

GitHub

Najwiksza spoeczno programistw tworzcych otwarte oprogramowanie

Wykorzystuje system kontroli wersji Git

Darmowy hosting programw typu open source

Patne prywatne repozytoria

Repozytorium Przechowuje dane dotyczce pojedynczego projektu

W zalenoci od systemu kontroli wersji moe, lecz nie musizawiera pod-wariantw projektu (trunk, branches, tags)

Zawiera wszystkie skadowe projektu (elementy potrzebne dojego inicjalizacji)

Nie zawiera skompilowanego kodu rdowego (zazwyczaj)

Nie zawiera danych pobieranych z innych rde (np.artifactory)

Branches Przechowuj inne wersje repozytoriw (eksperymenty,

wsparcie dla innych platform, wyspecjalizowane wersje dlaklientw itp.)

W przypadku poprawy bdw konieczno zmiany w wielumiejscach

Podstawowe narzdzie w produkcji oprogramowania wprzypadku Gita

Rozwj fragmentw systemu tzw. wysokiego ryzyka

Moliwo poczenia z gwnym repozytorium (!)

Branches

Commit Zapisanie w repozytorium zmian nosi nazw commit

Kady commit powinien posiada informacje na tematwprowadzonych zmian

Commity tworz histori repozytorium

W zalenoci od systemu kontroli wersji commity mog trafiabezporednio do gwnego repozytorium, lub dolokalnych/porednich repozytoriw (np.: w celu dokonaniaCode Review)

Niektre systemy kontroli wersji pozwalaj na cofaniecommitw z repozytorium (!)

Revert Wikszo systemw kontroli wersji zezwala na cofnicie

dokonanych w repozytorium zmian

Prawie zawsze przyjmuj one form nowego commita

Update/Synchronize Aktualizacja repozytorium zapisanego lokalnie odbywa si

poprzez mechanizm aktualizacji/synchronizacji

Systemy kontroli wersji dopuszczaj aktualizacj donajnowszej wersji poszczeglnych plikw lub do wybranejrewizji

Przed wykonaniem kolejnego commitu zaleca sizaktualizowanie lokalnej wersji repozytorium w celurozwizania ewentualnych konfliktw midzy wersjami plikw

Merge Operacja czenia rnych wersji repozytorium lub

pojedynczych plikw

O merge zazwyczaj mwi si w kontekcie rozwizywaniakonfliktw (tzw. Merge conflict), operacji ktra wymaga uwagiprogramisty/autora i wybrania waciwego sposobupoczenia pliku (manualnie)

Zadanie 1 Zarejestruj si w serwisie GitHub (https://github.com)

Zainstaluj aplikacj GitHub (https://desktop.github.com)

Pocz swoje konto GitHub z aplikacj GitHub Desktop

Wykonaj doczony do aplikacji tutorial

https://github.com/https://desktop.github.com/

Zadanie 2 Grupy 5-6 osobowe

Utwrzcie repozytorium testowe

Dodajcie wszystkim osobom z zespou prawo odczytu/zapisu(poprzez stron https://github.com)

Sprbujcie doda lub zmodyfikowa kilka plikw a nastpniedoczy je do gwnej gazi repozytorium

Kada osoba musi wykona co najmniej jednego commita

https://github.com/

Projekt zaliczeniowyZostalicie poproszeni o stworzenie systemu dla jednego z kin wKatowicach. System bdzie uywany do rezerwacji biletw przezInternet.

Utwrzcie repozytorium na platformie GitHub

Doczcie wszystkie osoby z zespou do repozytorium

Stwrzcie pocztkowy Product Backlog

Wybierzcie technologie (najlepiej z zakresu OOP)

Ustalcie priorytety dla stworzonych US

Oszacujcie stopie trudnoci US

Wykonajcie pierwsze planowanie

Projekt zaliczeniowy c.d. Wybierzcie zadania do Sprint Backlogu (1 iteracja)

Wykorzystajcie Sprint Planning i Sprint Review do poprawy jakoci waszej pracy

Stwrzcie wasne DoD

Stwrzcie kryteria akceptacji dla poszczeglnych US

Postarajcie si komunikowa bezporednio rwnie poza zajciami w celu realizacji projektu

Przetestujcie swoje rozwizania

Cz moduw moe zosta zamockowana (np.: modu patnoci)

Projekt zaliczeniowy c.d. Rozdzielcie zadania

Wykonajcie projekt przy pomocy metodyk zwinnych (Scrum + Kanban)

Rol Product Ownera na potrzeby projektw peni dr Rafa Skinderowicz

Rol Scrum Mastera na potrzeby projektw peni mgr in. Micha Maliszewski

Wykorzystajcie wiedz zdobyt na zajciach do realizacji projektu

Projekt obejmuje prac na zajciach oraz prac wasn zespou

Projekt zaliczeniowy c.d. Pod koniec kadych zaj dostarczajcie dziaajce

oprogramowanie

Linki do repozytoriw powinny by dostpne dla prowadzcych zajcia

Nie bjcie si pyta

Na kadych zajciach organizujcie Daily Scrum

Deadline ostatnie zajcia w semestrze

Powodzenia

Dzikuj za uwag