Systemy Rozproszone 29 pa¹dziernika 2009
Agenda Historia Powstawanie Git'a Historia Bª dy i niedoci gni cia Podsumowanie
Sªownik Historia Powstawanie Git'a Git push pull clone SVN commit update checkout Wspólne poj cia branch merge
Historia Historia Powstawanie Git'a 1972 - SCCS 1980s - RCS 1990 - CVS 2000 - SVN i BitKeeper 2005 - Git i Mercurial
Twórcy Historia Powstawanie Git'a Linus Torvalds Junio Hamano Pomysªodawca Obecny zarz dca
Uzasadnienie biznesowe Historia Powstawanie Git'a Zmiana polityki BitMover Nikt nie chciaª powraca do tarball'i i patch'ów Brak dost pnych rozwi za«: rozproszonych niezawodnych wydajnych
Inspiracja Historia Powstawanie Git'a Tarball'e i patch'e BitKeeper jako przykªad pozytywny CVS jako przykªad negatywny WWCVSND - What Would CVS Not Do?
Branching Merging Zawarto± a pliki Bezpiecze«stwo http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated
Branching Branching Merging Zawarto± a pliki Bezpiecze«stwo Szybki i ªatwy w stworzeniu Tani w utrzymaniu Lokalny
Prawa do commit'owania Branching Merging Zawarto± a pliki Bezpiecze«stwo 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.
Sie zaufania Branching Merging Zawarto± a pliki Bezpiecze«stwo http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated
Wpªyw na zarz dzanie Branching Merging Zawarto± a pliki Bezpiecze«stwo Uproszczenie przestrzeni nazw Synchronizacja pracy Uªatwienie pracy wewn trz zespoªów Delegowanie pracy
Wydajno± Branching Merging Zawarto± a pliki Bezpiecze«stwo 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
Scalanie w SVN Branching Merging Zawarto± a pliki Bezpiecze«stwo 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
Scalanie w Git Branching Merging Zawarto± a pliki Bezpiecze«stwo 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
Wydajno± Branching Merging Zawarto± a pliki Bezpiecze«stwo 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.
ledzenie zawarto±ci Branching Merging Zawarto± a pliki Bezpiecze«stwo 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.
Wydajno± Branching Merging Zawarto± a pliki Bezpiecze«stwo Porównanie wielko±ci repozytorium dla projektu KDE CVS: 4GB SVN: 12GB Git: 1.5GB
SHA1 Branching Merging Zawarto± a pliki Bezpiecze«stwo Jest funkcj skrótu Opracowany w 1995 przez NSA i NIST Zast piª SHA0 Zast piony przez rodzin SHA2 Byª cz ±ci DSA
SHA1 a Git Branching Merging Zawarto± a pliki Bezpiecze«stwo Git liczy sumy kontrolne dla danych Git sprawdza sumy kontrolne dla danych SHA1 nie jest mechanizmem bezpiecze«stwa, lecz werykacji
Standardowe rozwi zania Archiwum zmian Sze± obiektów Zarz dzanie repozytorium Metody wersjonowania Delty Tekst Splot 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
Rozwi zania Git'a Archiwum zmian Sze± obiektów Zarz dzanie repozytorium Delty liczone s mi dzy wybranymi obiektami Obiekty wybiera si heurystycznie Otrzymujemy grafy acykliczne delt zamiast ªa«cucha Wagami w grae s rozmiary delt
Blob i Tree Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Commit i Ref Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
RemoteRef i Tag Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Szybkie scalanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Szybkie scalanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Szybkie scalanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Scalanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Scalanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Scalanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Przebazowanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Przebazowanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Przebazowanie Archiwum zmian Sze± obiektów Zarz dzanie repozytorium http://eagain.net/articles/git-for-computer-scientists
Ograniczenia Stopie«trudno±ci Nie ma najnowszej wersji Kªopoty w ±rodowisku Windows SHA1 przestaje by bezpieczny
Podsumowanie Podsumowanie Bibliograa Rozproszony jest lepszy! Git jest bardzo dobrym narz dziem Jest jednak TYLKO narz dziem
Dzi kuj Podsumowanie Bibliograa Dzi kuj za uwag.
Bibiograa Podsumowanie Bibliograa 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
Bibiograa Podsumowanie Bibliograa 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