Jak możemy się dowiedzieć na jednym z blogów, Jesse Keating – główny zarządca źródeł i kontroli pakietów, postanowił zmienić system kontroli wersji z CVS na Git. Jesse wspomina CVS, jako ten który służył bardzo dobrze od początku powstania projektu Fedora. Jednakże czas robi swoje i w tym czasie obecnie używany system zaczął spowalniać swój rozwój oraz pojawiło się wiele błędów, które były wykorzystywane do włamań.
Dlaczego warto by zmienić na Git
Rozproszone zarządzanie
Jedną z najlepszych cech gita jest rozproszoność, dzięki której każdy kto skopiuje (sklonuje) repozytorium, ma wszystkie zawarte w nim informacje. W szczególności jest to cała historia,a wszystkie te informacje zawarte są w katalogu .git. Od momentu wykonania operacji clone stajemy się właścicielami własnego, prywatnego, lokalnego repozytorium, a dostępu do internetu wymagają jedynie operacje synchronizacji repozytoriów.
Lokalne repozytorium
Dzięki rozproszoności mamy możliwość wykonywania większości operacji na lokalnym repozytorium. Dzięki temy w ułamku sekundy zostanie wykonana prawie każda komenda, np. git log trwa ułamek sekundy.
Tworzenie nowego repozytorium
Utworzenie nowego repozytorium to kwestia jednego polecenia, wydanego z katalogu z projektem. Git tworzy tylko jeden katalog o nazwie .git, zatem ewentualne usunięcie repozytorium to kwestia skasowania tego katalogu.
Rozmiar repozytorium
Pomimo tego, że klonując repozytorium gita, pobieramy całą jego historię, rozmiar katalogu z projektem nie jest o wiele większy, niż gdybyśmy użyli pojedynczego „checkouta” svn.
Gałęzie
Git maksymalnie upraszcza prace na gałęziach. Tworzenie gałęzi trwa ułamek sekundy, a przełączanie się między nimi jest tylko troszkę wolniejsze. Co ciekawe w gicie pracujemy na różnych gałęziach używając tego samego katalogu roboczego – zupełnie inaczej niż w svn, gdzie każda gałąź (tag) jest osobną kopią.
Według bloggera i głównego zarządcę zmian, repozytorium Fedory i całego Red Hata powinno przejść na Git w 2010, pomiędzy wydaniem Fedory 13, a 14. Narzędziami używanymi do tegoż importu są cvs2git (część cvs2svn) i git cvsimport.
Za pomoc w napisaniu newsa serdecznie dziękuję bloggerowi Radkowi Bulat.























