Systemy kontroli wersji są niezbędnym narzędziem w codziennej pracy zespołu projektowego, a często bez odpowiedniego rozwiązania niemożliwa jest komunikacja i wymiana rezultatów prac pomiędzy programistami.
Ujmując temat zwięźle w ramy praktyczne Linux Torvalds poczuł potrzebę niezależności w wytwarzanych projektach i zrozumiał, że problem łączenia kodu różnych osób współtworzących jeden produkt tzw.merge to klucz do sprawnej pracy. Tworzenie oprogramowania, kiedy 30% czasu zajmuje rozwiązywanie konfliktów mojego kodu z innymi to znane z SVN (Subversion) marne zwyczaje współpracy. Linus wychwycił również ten fakt, więc nie chciał kopiować systemu wersji SVN i pomyślał o swoim systemie wersji. Ponieważ zna się na algorytmach opracował koncept, kiedy każda zmiana może być postrzegana jako gałąź drzewa stanowiących naturalny system zmian, zakończony jednym pniem. Pień drzewa, czyli master jest miejscem (tzw. branch), gdzie wszystkie powstające zmiany (tzw. features) trafiają ostatecznie. Każda nowa zmiana może dosłownie niezależnie być rozwijana w dowolnym innych mniej lub bardziej zależnym repozytorium przez jednego lub więcej developerów. Niby nic dziwnego, bo tak ma wiele systemów kontroli wersji, ale jednak więcej niżeli w Subversion. Koncept, który udało się wytworzyć pozwala na podłączanie się do wielu zdalnych repozytoriów kodu, łączenie ze sobą pracy wielu niezależnych programistów i osiąganie w ten sposób jednego zamierzonego celu. Tym celem jest Linux Kernel, czyli jądro >70% urządzeń, maszyn, serwerów, rakiet, sprzętu wojskowego i innych przemysłowych wytworów, do tego współczesnych smartfonów, tabletów, komputerów. Linus Torvalds tworząc GITa osiągnął swój cel, czyli uniezależnienie pracy wielu chętnych ludzi ze świata Open Source w celu stworzenia jednego z największych i rewolucyjnych produktów. Sukcesem tym Linus podzielił się ze światem i zmienił myślenie, ułatwiając tym samym pracę wielu milionów programistów.
Linus, thanks for GIT, too ;)
Przypominam sobie jak chciałem zrobić kilka poprawek do słynącego systemu helpdesk o nazwie OTRS, co tutaj będę ukrywał - w języku Perl :-)< br /> Zapowiadał się dość niepewnie, bo na starcie dowiedziałem się o tym, że mają w tym projekcie repozytorium CVS, które to jest dość magicznym sposobem na gromadzenie historii zmian wersji kodu. Nie pozostało mi nic innego jak zaproponować autorowi OTRSa przenieść się na GITa :-) Nie musiałem go zbyt przekonywać, bo dzięki temu społeczność developerów wokół projektu OTRS odżyła. Szczegóły widać na GITHUB w projekcie OTRS
Cechy z którymi GIT stał się potęgą obsługi wersji współczesnych projektów to:
- gałęzie gita - branch
- Narzędzia Gita - Moduły zależne - submodules
- poddrzewa projektowe gita - subtress
- rozproszona obsługa wersji i zdalne branche - DVCS
Oto co mówi Linus na temat systemu kontroli wersji GIT:
Linki:
Brak komentarzy:
Prześlij komentarz