GIT majonez czyli kontrola wersji z Linusem w tle

Dziś będzie o czymś innym. Jakoś do tej pory w swoich wpisach nie wychodziłem poza zagadnienia związane z samym programowaniem lub biliotekami użytecznymi przy tymże programowaniu. Jednakże prędzej czy później przyjdzie czas na zabawę z bardziej rozbudowanymi narzędziami z Javowego swiata – wtedy też i pewnie zacznę popełniać więcej wpisów na te tematy. W związku z małą rewolucją u mnie w zakładzie pracy chronionej 🙂 przeszliśmy na Git-a. Jako, że miałem z jego instalacją na Windows małe przygody (chodziło głównie o autoryzację przez LDAP), postanowiłem przedstawić historię tych zmagań na blogu – pewnie komuś się przyda.

Na początku kilka słów o samym Gicie. Ten system kontroli wersji powstał jako dzieło programistów kernela, a konkretniej jak podaje Wiki samego Linusa Torvaldsa. Został on stworzony na potrzeby prac nad jajkiem kiedy poprzednio używany system przestał być darmowy. W mojej firmie powodem odejścia od stosowania SVNa była jego niezbyt udana polityka dotycząca oddzielnych gałęzi oraz ich mergowania. W przypadku Gita praca jednocześnie nad wieloma gałęziami i efektywne ich łączenie była jednym z fundamentalnych założeń dla całego systemu.

Oczywiście Git jako rzecz zaprojektowana do pracy w środowisku POSIX na Windowsie nie za bardzo chce działać. Jednakże na pomoc przychodzi nam programik msysgit. Ściągamy go z hostingu Googla po czym rozpoczynamy instalację. Jedynym ciekawym jej wyróżnikiem w przypadku systemu Windows jest pytanie o końcówki linii jakie mają być stosowane przy obsłudze repozytorium. Jeśli ktoś miał (nie)przyjemność pracować na jednym repozytorium SVN z ludźmi uzywającymi w pracy linuxa z pewnością doceni ten jakże oczywisty bonus. Instalator ostatecznie umieści u nas na dysku konsolę do obsługi Gita opartą na Cygwinie, a także GUI, które ma być nakładką na konsolę. Jedno i drugie ma swoje plusy i minusy, choć trzeba przyznać, że funkcjonalność konsoli jest o niebo większa.

Domyślnie repozytorium zostało założone na lokalnych serwerach, do których dostęp po SSH (tak miało być) jest autoryzowany LDAPem. No i teraz co po kolei trzeba zrobić, aby to wszystko działało.

1. Generjemy klucz publiczny i prywatny jeśli ich nie mamy. W przypadku Windowsa najlepiej do tego użyć PuttyKeyGen. Generujemy klucz po czym zapisujemy oba klucze (publiczny i prywatny).

2. Putty stosuje własny format pliku do trzymania klucza. Dlatego też by format naszego klucza działał z innymi usługami należy posłużyć się ponownie aplikacją KeyGenerator i otworzyć zapisany klucz prywatny. W górnej części okienka znajduje się pole, w którym zostanie pokazany klucz publiczny w formacie umożliwiającym wrzucenie go do listy uprawnionych kluczy.

keyGen

Ten właśnie klucz (skopiowaną zawartość pola) wrzucamy w panelu zarządzania kluczami/katalogu na serwerze SSH czy jakiekolwiek tam rozwiązanie jest u nas przyjęte.

3. Istnieje szansa, że będzie musiało minąć trochę czasu zanim klucz publiczny rozpropaguje się po wszystkich serwerach (ale to pewnie rzecz w konfigu lokalnym), zależy to od ilości serwerów, na których ten klucz będzie w użyciu.

4. Następnie ze strony downloadu Putty ściągamy aplikację o nazwie Pageant, która jest agentem połączeń SSH dla Putty, a także dla Plinka, która to aplikacja również jest częścią rodziny Putty i u mnie podczas instalacji msysgita wybrałem ją jako tę, która ma obsługiwać połączenia SSH.

5. Uruchamiamy wspomnianego Pageanta, który zadokuje się jako mała aplikacyjka w tle (komputer w kapeluszu).

dock

Klikamy na ikonkę po czym dodajemy nasz klucz prywatny do listy i viola – teraz możemy odpalić konsolę Gita i z czystym sumieniem móc połączyć się po SSH z docelowym serwerem i np. sklonować istniejące repozytorium. That’s all folks.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s