Git - Rozproszony System Kontroli Wersji

Transkrypt

Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Git - Rozproszony System Kontroli Wersji
Bartosz Borkowski
Systemy Rozproszone
29 pa¹dziernika 2009
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Historia
Powstawanie Git'a
Agenda
Historia
Specykacja
Implementacja
Bª¦dy i niedoci¡gni¦cia
Podsumowanie
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Historia
Powstawanie Git'a
Sªownik
Git
SVN
push
commit
pull
update
clone
checkout
Wspólne poj¦cia
branch
merge
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Historia
Powstawanie Git'a
Historia
1972 - SCCS
1980s - RCS
1990 - CVS
2000 - SVN i BitKeeper
2005 - Git i Mercurial
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Historia
Powstawanie Git'a
Twórcy
Junio Hamano
Linus Torvalds
Pomysªodawca
Bartosz Borkowski
Obecny zarz¡dca
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Historia
Powstawanie Git'a
Uzasadnienie biznesowe
Zmiana polityki BitMover
Nikt nie chciaª powraca¢ do tarball'i i patch'ów
Brak dost¦pnych rozwi¡za«:
rozproszonych
niezawodnych
wydajnych
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Historia
Powstawanie Git'a
Inspiracja
Tarball'e i patch'e
BitKeeper jako przykªad pozytywny
CVS jako przykªad negatywny
WWCVSND - What Would CVS Not Do?
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Branching
Szybki i ªatwy w stworzeniu
Tani w utrzymaniu
Lokalny
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Prawa do commit'owania
Problem
Ludzie s¡:
nierzetelni
roztrzepani
zªo±liwi
niekompetentni
Jak ograniczy¢ dost¦p takich ludzi do repozytorium?
Rozwi¡zanie
Wprowadzi¢ mnóstwo ogranicze« i zªej atmosfery do projektu.
Przej±¢ na model rozproszony.
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Sie¢ zaufania
http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Wpªyw na zarz¡dzanie
Uproszczenie przestrzeni nazw
Synchronizacja pracy
Uªatwienie pracy wewn¡trz zespoªów
Delegowanie pracy
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Wydajno±¢
SVN
Tworzenie nowych gaª¦zi w czasie
O(1)
Nowa gaª¡¹ pocz¡tkowo nie zmienia rozmiaru repozytorium
Utrzymanie gaª¦zi w zamortyzowanym czasie staªym
Git
Utworzenie gaª¦zi to stworzenie 41 bajtowego pliku
Utrzymanie gaª¦zi podobne do rozwi¡za« z SVN
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Scalanie w SVN
Rozwi¡zanie
Stwórz di z dwóch gaª¦zi
Zaaplikuj zmiany do jednej z nich
Wprowad¹ zmienion¡ gaª¡¹ do repozytorium jako jeden commit
Problemy
U»ytkownik musi
planowa¢ z tygodniowym wyprzedzeniem
zarezerwowa¢ na operacj¦ jeden dzie«
po»egna¢ si¦ z histori¡ zmian
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Scalanie w Git
Rozwi¡zanie
Znajd¹ wspólny w¦zeª w historii
Scal od tego w¦zªa
Wprowad¹ do repozytorium nowy w¦zeª z dwoma rodzicami
Stwórz plik di stat
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Wydajno±¢
Ró»nica jako±ciowa
Podczas prac nad j¡drem Linuksa osi¡gni¦to ±rednio 4.5
scalenia na dzie«
Jedno scalenie trwaªo ok. 3 sekund
Zmiana mentalno±ci
Robi¡c gaª¦zie i scalenia cz¦±ciej, dziaªaj¡c na mniejszych
fragmentach kodu, unikamy bardzo powa»nych problemów.
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
‘ledzenie zawarto±ci
Kolekcja
Git ±ledzi kolekcj¦ plików, a nie pojedyncze pliki
Konsekwencje
Du»e repozytoria b¦d¡ dziaªa¢ wolno
Rozwi¡zanie
Repozytorium zawieraj¡ce wska¹niki do repozytoriów.
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
Wydajno±¢
Porównanie wielko±ci repozytorium dla projektu KDE
CVS:
∼4GB
SVN:
∼12GB
Git:
∼1.5GB
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
SHA1
Jest funkcj¡ skrótu
Opracowany w 1995 przez NSA i NIST
Zast¡piª SHA0
Zast¡piony przez rodzin¦ SHA2
Byª cz¦±ci¡ DSA
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Branching
Merging
Zawarto±¢ a pliki
Bezpiecze«stwo
SHA1 a Git
Git liczy sumy kontrolne dla danych
Git sprawdza sumy kontrolne dla danych
SHA1 nie jest mechanizmem bezpiecze«stwa, lecz werykacji
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Standardowe rozwi¡zania
Metody wersjonowania
Tekst
Splot
Delty
Delty
Tylko najnowsza wersja przechowywana jest w caªo±ci
Pozostaªe reprezentowane s¡ przez delty wzgl¦dem swoich
nast¦pców
Ulepszenia: kombinacje delt i skip-delty
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Rozwi¡zania Git'a
Delty liczone s¡ mi¦dzy wybranymi obiektami
Obiekty wybiera si¦ heurystycznie
Otrzymujemy grafy acykliczne delt zamiast ªa«cucha
Wagami w grae s¡ rozmiary delt
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Blob i Tree
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Commit i Ref
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
RemoteRef i Tag
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Szybkie scalanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Szybkie scalanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Szybkie scalanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Scalanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Scalanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Scalanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Przebazowanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Przebazowanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Archiwum zmian
Sze±¢ obiektów
Zarz¡dzanie repozytorium
Przebazowanie
http://eagain.net/articles/git-for-computer-scientists
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Ograniczenia
Stopie« trudno±ci
Nie ma najnowszej wersji
Kªopoty w ±rodowisku Windows
SHA1 przestaje by¢ bezpieczny
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Podsumowanie
Bibliograa
Podsumowanie
Rozproszony jest lepszy!
Git jest bardzo dobrym narz¦dziem
Jest jednak TYLKO narz¦dziem
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Podsumowanie
Bibliograa
Dzi¦kuj¦
Dzi¦kuj¦ za uwag¦.
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Podsumowanie
Bibliograa
Bibiograa
Linus Torvalds on Git:
http://www.youtube.com/watch?v=4XpnKHJAok8
Git for Computer Scientists:
http://eagain.net/articles/git-for-computer-scientists
Intro to Distributed Version Control (Illustrated):
http://betterexplained.com/articles/intro-to-distributedversion-control-illustrated
DVCSAnalisis:
http://code.google.com/p/support/wiki/DVCSAnalysis
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji
Wst¦p
Specykacja
Implementacja
Problemy modelu rozproszonego
Sªowo ko«cowe
Podsumowanie
Bibliograa
Bibiograa
File versioning:
http://web.mit.edu/ghudson/thoughts/le-versioning
SVNBook:
http://svnbook.red-bean.com/en/1.1/index.html
Opis algorytmu SHA1:
http://e-handel.mm.com.pl/crypto/opis_algorytmu_sha.htm
Cryptoanalisis of SHA1:
http://www.schneier.com/blog/archives/2005/02/
cryptanalysis_o.html
Bartosz Borkowski
Git - Rozproszony System Kontroli Wersji

Podobne dokumenty