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