Szkolenie Git
Mateusz Adamowski
SysOps/DevOps

Historia powstania
cofnijmy się w czasie do 2000
Rok 2000
- dial-up internet
- cloud computing - nie istnieje
- wirtualizacja, konteneryzacja - raczkują
- CVS, Subversion
CVS (1990)
- brak śledzenia katalogów i zmian nazw
- tylko praca online
- blokady
- fatalna obsługa gałęzi i tagów

If you like using CVS, you should be in some kind of mental institution or somewhere else.
(Linus Torvalds)
Jeśli lubisz używać CVS, powinieneś być w zakładzie psychiatrycznym czy gdzieś.
(Linus Torvalds)
Subversion (1995)
- centralny serwer
- branche jako podkatalogi
- niefektywne przechowywanie
- brak kontroli integralności danych
- ograniczenia w obsłudze metadanych (np.
chmod
)
- słaba funkcjonalność mergowania
Subversion has been the most pointless project ever started… Subversion used to say, ‘CVS done right.’ With that slogan there is nowhere you can go. There is no way to do CVS right.
(Linus Torvalds)
Subversion to najbardziej bezsensowny projekt, jaki kiedykolwiek rozpoczęto… Motto Subversion brzmiało: „CVS zrobione prawidłowo”. Z tym sloganem nie da się nic osiągnąć. Nie da się zrobić prawidłowo CVS.
(Linus Torvalds)
Linux
- flagowy projekt free/open source
- kernel 2.2.x, 2.4.x
- 1.5M LoC
- rosnąca popularność i zainteresowanie gigantów
For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is.
(Linus Torvalds)
Przez pierwszych 10 lat rozwoju kernela używaliśmy po prostu archiwów tara i patchy, co jest znacznie lepszym systemem kontroli wersji niż CVS.
(Linus Torvalds)

(2002)
BitKeeper
Innowacyjne narzędzie do kontroli wersji firmy BitMover.
- komercyjne (płatne)
- rozproszone
- trzyma repozytoria “w chmurze”
-
- kontrowersyjne licencjonowanie
Darmowa licencja
- dla developerów FLOSS
- ograniczona funkcjonalność
- kontrowersyjne zapisy
- niedostępna dla developerów innych VCS
- zakaz rozszerzania funkcjonalności
Flame wars
Flagowy projekt FLOSS zarządzany komercyjnym narzędziem.
vs
I’ll use the best tool for the job and, quite frankly, BitKeeper was it. (Torvalds)
Wycofanie licencji
(2005)
Powstanie Gita
- napisany w kilkanaście dni przez Linusa Torvaldsa
- języki: C, shell, perl
- narzędzia systemowe typu diff, patch
Take CVS as an example of what not to do; if in doubt, make the exact opposite decision
(Linus Torvalds)
Trzeba wziąć CVS jako przykład czego nie robić, a w razie wątpliwości - zrobić odwrotnie.
(Linus Torvalds)
Rozwój gita
- konkurencyjne narzędzia
- Mercurial (
hg
)
- Bazaar (
bzr
)
- Fossil (SQLite)
- Monotone
Windows?
- inne znaki końca linii
- nazwy plików, ścieżki
- prawa dostępu
- brak narzędzi shellowych
- wolniejszy system plików i tworzenie procesów
Windows problems
Are we really contemplating porting git to native Windows?
I guess I missed that memo.
Git for Windows


Git Bash (Windows)
- translacja ścieżek Windows na Linux
- konwersja plików “w locie”
- narzędzia:
- shell (
bash
)
- coreutils:
awk
, sed
, grep
…
perl
, GPG
GitHub (2008)
- platforma web
- darmowy hosting projektów FLOSS
GitLab (2011)
- self-hosted
- od 2014 też jako usługa
- GitLab CI (2012, zintegrowane w 2015)
GitHub Actions (2018)
Microsoft?
- własne produkty:
- Visual SourceSafe
- Team Foundation Server
- Source Depot
- 2017 - MS używa wewnętrznie gita
- 2018 - zakup GitHuba przez MS
BitKeeper?
- 2000 - powstanie
- 2002 - współpraca z deweloperami Linuksa
- 2005 - odebranie licencji deweloperom Linuksa
- 2016 - open source (Apache License 2)
- 2018 - discontinued
Koniec