Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?


Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Strony: [1]
DrukujPobierz PDF
Autor Wątek: Obsługa gita dla GIMP-owców  (Przeczytany 2850 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 331
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« : 16.09.2015, 15:49:48 »

Poniższy tutorial spróbuje wyjaśnić jak obsłużyć program git, aby móc potem skompilować sobie GIMP-a. Zakładam, że masz:
  • wystarczająca wiedzę, aby obsługiwać git-a z konsoli
  • wiesz co wiąże się z pobieramiem i uruchamieniem źródeł będących w developemencie

Nie wiecie skąd, jak zainstalować git? Spróbujcie tutaj: Installing Git.

Ten tutorial uczy jedynie pobierania z repozytorium źrodeł. Nie uczy wprowadzenia zmian. Jeśli chcecie przyłączyć się do rozwoju GIMP-a, to więcej przydatnych informacji, znajdziecie pod tym linkiem: Getting the most out of Git in GNOME.

Tutorial jak wspominałem, zakłada użycie konsoli. Są oczywiście graficzne klienty git-a, ale konsola jest najbardziej uniwersalną. Nazwy komend na pewno pojawią się w okienkach wersji graficznych.

Lime Point 1. GIMP: Główne repozytorium

Źródła programu GIMP znajdują się na serwerze git.gnome.org. Są na nim różne programy oraz zasoby związane głównie z GNOM-em. Nas interesuje GIMP, stąd i link:

https://git.gnome.org/browse/gimp/

Lime Point 2. Podstawowe pojęcia

Można by się spodziewać, iż źródła GIMP-a to będzie jeden zbiór plików, wchodząc jednak na powyższą stronę można zauważyć całkiem sporą listę. Przedstawia ona głównie tzw. "brancze" (ang. branch - gałąź), "tagi" oraz historię ostatnich zmian.

Tagi są jak zakładki w książce: mały kartonik który mówi, że na danej stronie jest coś co chcemy znaleźć. Tutaj wskazują na pewne etapy w rozwoju kodu (głównie wersje, np. GIMP 2.8.14 ma swój własny tag).

O branczach można myśleć jak o pewnego rodzaju osobnych kopiach całego projektu. Tworzy się je aby móc pracować w oderwaniu od innych, by wzajemnie sobie nie przeszkadzać. Gdy więc ktoś wpada na pomysł utworzenia jakiegoś nowego ciekawego narzędzia, robi to na swoim osobnym branchu. I dlatego właśnie może nas interesować pobranie takiego. Brancze są potem potem scalane z głównym branczem, jeśli zachodzi potrzeba, ale to zupełnie inna historia.

Można zapytać, no dobrze, to skąd się bierze konkretny GIMP którego potem można pobrać z gimpuj.info? Z pewnego brancza, który zgodnie z umową jest tym głównym. W przypadku GIMP-a nazywa się on: "master". Jest też domyślnym - np. przy poleceniach clone, o których piszę niżej.

Lime Point 3. Pierwsze pobranie źródeł

Więc jeśli chcemy pobrać aktualne, najświeższe źródła GIMP-a, nic wcześniej mając z tym wspólnego, wystarczy wykonać tzw. klonowanie. Poleceniem na to jest: git clone.

Ono po prostu pobierze nam wszystkie pliki źródłowe (oraz historię zmian) w takim stanie, jaki właśnie jest na serwerze. Polecenie potrzebuje linku do repozytorium (czyli miejsca gdzie trzymane są źródła, wraz z historią ich zmian). Link do repozytorium GIMP-a znajduje się na dole strony http://git.gnome.org/browse/gimp/ (nagłówek "Clone"). Są tam trzy, ale nas interesuje ten z "git:" na początku (z protokołem git, jakby powiedział informatyk). W całości polecenie wygląda to następująco:

Kod:
git clone git://git.gnome.org/gimp

W ten sposób, w miejscu gdzie polecenie to zostanie wykonane, utworzy sie katalog (domyślnie o nazwie gimp), a w nim pobrane zostaną pliki źródłowe (pojawi się też ukryty katalog .git - w nim schowane są wszystkie rzeczy z jakich git potrzebuje do swojej pracy - można go w sumie usunać, ale wtedy wszystkie komendy gita wykonywane w tym katalogu przestaną działać).

Obecnie źródła GIMP-a zajmują około 225 MB danych. Chwilę więc pobieranie zajmie. Na pocieszenie dodam, że git optymalizuje swoją pracę, pobieranie branczy, szczególnie dość świeżych trawa nie porównanie krócej.

Lime Point 4. Pierwsze pobranie źródeł, ale z innego brancza

Jeśli interesuje nas konkretny branch, możemy w czasie klonowania odrazu, przez parametr polecenia clone "--branch": git clone --branch <nazwa brancha> git://git.gnome.org/gimp. Np.

Kod:
git clone --branch multi-stroke git://git.gnome.org/gimp

Listę dostępnych branczy znajdziecie na stronie repozytorium. Mała uwaga: "--branch" zastapić przez "-b".

Wszystkie poniższe polecenia należy wykonywać w katalogu, który powstał po sklonowaniu (zazwyczaj: gimp).

Lime Point 5. Pobieranie dodatkowych branczy

Jeśli pobraliście już źródła, nie musicie ich usuwać, aby pobrać inny branch. Specjalne polecenie gita pozwoli pobrać drugi. Potem będzie można przełączać się swobodnie między nimi (choć za każdym razem trzeba wszystko kompilować).

Aby pobrać dodatkowy brach używamy polecenia: git checkout -b <nazwa_lokalna_brancha> <nazwa_serwera>/<nazwa_brancha>.

Gdzie: <nazwa_serwera> to zwykle "origin" (serwer, a właściwie jego alias, z którego pobieramy źródła - [em]origin[/em] to domyślny alias na serwer, z którego klonowaliśmy).
Przez <nazwę_brancha> rozumiemy oczywiście nazwę brancha, którego chcemy pobrać (np. "multi-stroke"). A <nazwa_loklana_brancha> to nazwa jakiej będziemy używać u siebie (żeby nie komplikować, można używac tej samej co oryginalna nazwa). Przykładem jest więc:

Kod:
git checkout -b multi-stroke origin/mypaint-brush

Przełączać między pobranymi branchami można się przez polecenie: git checkout <nazwa_brancha>

Tak, tu też jest [em]checkout[/em], a jedyne czego brakuje to małe "-b", które zleca utworzenie nowego brancha. Ale to jeszcze nie wszystkie zastosowania polecenie [em]git checkout[/em].

Lime Point 6. Kilka być poleceń kontrolnych

Jak można zauważyć, git jest w stanie zarządzać kilkoma branczami na raz i swobodbnie się między nimi przełączać. Aby się w tym rozeznać, oto kilka poleceń:

Kod:
git status

Wyświetla krótkie podsumowanie, jaki jest aktywny brancz. Oraz jak bardzo różnimy się od wersji na serwerze (to działa jedynie, gdy brancze są podpięte do swoich odpowiedników na serwerze).
Polecenie to też pokazuje wszystkie zmiany względem tego co pobrano, a zostało zmienione lokalnie, ale nie [em]zakomitowane[/em].

Kod:
git log

Wyświetla historię zmian źródeł.

Kod:
git branch

Wyświetla wszystkie dostępne loklanie brancze. Ta gwiazdka informuje który jest aktywny.

Lime Point 7. Pobieranie tagów

Nie ma specjalnego polecenia, aby pobrać coś, co jest oznaczone tagiem. Należy użyć poniższej komendy: git checkout -b <nazwa_brancha> <nazwa_taga>

Gdzie <nazwa_brancza> to nazwa wymyślona przez nas, a <nazwa_taga> to tag, który nas interesuje. Np:

Kod:
git checkout -b wersja_2_8_14 GIMP_2_8_14

Lime Point 8. Uaktualnienie źródeł

GIMP ciągle się rozwija. Nowe rzeczy pojawią się w repozytorium, jednak nasze lokalnie nie odświeża się automatycznie. Jak więc uaktualnić nasz domowy katalog? Można wykonać polecenie git pull:

Kod:
git pull

W tej postaci git pobiera dane wszystkich dla swoich lokalnych branczy (jeśli są powiązane z branczami na serwerze). Można też używać bardziej konkretnego: git pull <serwer> <branch>. <Serwer> to zazwyczaj [em]origin[/em], a <branch> to nazwa bracza jakiego odświeżamy. Uwaga: można sobie tutaj nieco namieszać, jak zaczniemy łączyć ze sobą różne brancze. Przykład użycia:

Kod:
git pull origin master

Lime Point 9. Usuwanie zmian

Jeśli zmieniłeś jakiś plik (przez przypadek lub nie), łatwo można przywrócić stan oryginalny przez polecenie:

Kod:
git reset --hard HEAD

Komenda "reset" cofa zmiany do "wersji HEAD", czy ostatniego komita - małej oznaczonej zmiany w kodzie. Paramater "--hard" rozkazuje usunąć wszystkich zmiany. Ewentualnie można też zastosować:

Kod:
git checkout .

(tak, tam jest kropka na końcu)

Lime Point 10. Podsumowanie

Git być może wydaje się skomplikowany, należy jednak pamiętać, że jest to narzędzie przeznaczone dla programistów. Nie jest takie znowu trudne jednak, zwłaszcza kiedy interesuje nas "jedynie odczyt".

Być może zainteresuje cię:

Zapisane
Strony: [1]
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aTutorialePropozycje i prośby o tutorialeFabryka tutoriali (Moderator: davlasq)Wątek: Obsługa gita dla GIMP-owców
Skocz do: