Koha Croatian user group
git: Revision 8
Git sustav za praćenje promjena koji koristi Koha.

*DON'T PANIC!*

{toc}

^ repozitoriji

Repozitoriji su jednostavno serveri koji nam omogućavaju da na njih šaljemo (push) ili sa njih vučemo (pull) promjene koje su u njima napravljene.

Kako je svaki checkout git-a potpuni repozitorij, svaki od njih može postati javni repozitorij koji može dijeliti promjene.

^^ Upstream Koha development

* http://git.koha.org/
* git://git.koha.org/pub/scm/koha.git

^^ Checkout (lokalna kopija)

.pre
git clone git://git.koha.org/pub/scm/koha.git
.pre

^^ FFZG promjene

* http://koha-dev.rot13.org:8081/cgi-bin/gitweb.cgi?p=koha-ffzg.git;a=summary
* ssh://koha-dev.rot13.org/srv/koha/

^^ promjene iz drugog repozitorija

Ako želimo povući promjene iz drugog repozitorija (npr. druge instalacije unutar KOHA CUG-a) trebamo dodati novi remote repozitorij.

Na repozitoriju koji je napravljen od upstream Koha repozitorija, imamo jedan remote repozitorij `origin` za push i pull:

.pre
dpavlin@t61p:/srv/koha$ git remote -v
origin git://git.koha.org/pub/scm/koha.git (fetch)
origin git://git.koha.org/pub/scm/koha.git (push)
.pre

Sada ćemo dodati repozitorij sa FFZG development-a koristeći običnu ssh konekciju:

.pre
dpavlin@t61p:/srv/koha$ git remote add ffzg ssh://koha-dev.rot13.org/srv/koha/
dpavlin@t61p:/srv/koha$ git remote -v
ffzg ssh://koha-dev.rot13.org/srv/koha/ (fetch)
ffzg ssh://koha-dev.rot13.org/srv/koha/ (push)
origin git://git.koha.org/pub/scm/koha.git (fetch)
origin git://git.koha.org/pub/scm/koha.git (push)
.pre

i povući sve promjene lokalno:

.pre
dpavlin@t61p:/srv/koha$ git fetch ffzg
remote: Counting objects: 2019, done.
remote: Compressing objects: 100% (1440/1440), done.
remote: Total 1790 (delta 1116), reused 587 (delta 317)
Receiving objects: 100% (1790/1790), 1.40 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (1116/1116), completed with 67 local objects.
From ssh://koha-dev.rot13.org/srv/koha
* [new branch] ffzg -> ffzg/ffzg
* [new branch] ffzg2 -> ffzg/ffzg2
* [new branch] koha-lxc -> ffzg/koha-lxc
* [new branch] master -> ffzg/master
* [new branch] origin -> ffzg/origin
* [new branch] rt-390-signatura-zatvorenog-spremista -> ffzg/rt-390-signatura-zatvorenog-spremista
From ssh://koha-dev.rot13.org/srv/koha
* [new tag] ffzg -> ffzg
.pre


^ branches

Branches su mjesta na kojima se povjest promjena grana u dva dijela. Jedan je development koji rade upstream developeri Kohe, a drugi su naše lokalne promjene za nešto.

Nakon nekog vremena, potrebno je dva branch-a spojiti u jedan da bi preuzeli promjene. `gitk` nam može pokazati to kao stablo:

{image: git-branch-merge.png}

Promjene se mogu preuzeti (merge) iz jednog branch-a u drugi.

^^ imenovanje

Branches nisu ništa drugo nego ime za svaku točku i kojoj se razvoj dijeli u dva toka.

Dobri nazivi za branch:

* DNS hostname produkcijske ili develpment mašine na kojoj je branch checkoutan
* veza na bug tracking (prefix-broj-kratak-opis)

^^ pregled

.pre
dpavlin@t61p:/srv/koha$ git branch -a
* master
remotes/ffzg/ffzg
remotes/ffzg/ffzg2
remotes/ffzg/koha-lxc
remotes/ffzg/master
remotes/ffzg/origin
remotes/ffzg/rt-390-signatura-zatvorenog-spremista
remotes/origin/3.0.x
remotes/origin/HEAD -> origin/master
remotes/origin/biblibre-acq-preview-only
remotes/origin/biblibre-integration
remotes/origin/biblibre-sopac
remotes/origin/labels_recon
remotes/origin/master
remotes/origin/rfid-direct-tagging
remotes/origin/sysprefs_editor
.pre



^^ kreiranje

Pretpostavimo da želimo kreirati branch za instalaciju na `koha.ffzg.hr`:

.pre
dpavlin@t61p:/srv/koha$ git checkout -b koha.ffzg.hr remotes/ffzg/ffzg2
Branch koha.ffzg.hr set up to track remote branch ffzg2 from ffzg.
Switched to a new branch 'koha.ffzg.hr'
.pre