Koha Croatian user group
git: Revision 22
Git sustav za praćenje promjena koji koristi Koha. DON'T PANIC! podaci o korisnikuDa bi vaši commiti imali lijepo ime korisnika, morate prvo konfigurirati git $ git config --global user.name "Dobrica Pavlinusic" $ git config --global user.email "dpavlin@rot13.org" Ovo je potrebno napraviti samo jednom za korisnika i primjenjuje se na svim repozitorijima na istoj mašini. repozitorijiRepozitoriji 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
Checkout (lokalna kopija)git clone git://git.koha.org/pub/scm/koha.git FFZG promjene
promjene iz drugog repozitorijaAko ž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: 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) Sada ćemo dodati repozitorij sa FFZG development-a koristeći običnu ssh konekciju: 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) i povući sve promjene lokalno: 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 branchesBranches 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: Promjene se mogu preuzeti (merge) iz jednog branch-a u drugi. imenovanjeBranches nisu ništa drugo nego ime za svaku točku i kojoj se razvoj dijeli u dva toka. Dobri nazivi za branch:
pregleddpavlin@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 kreiranjePretpostavimo da želimo kreirati branch za instalaciju na koha.ffzg.hr: 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' patchesformat-patchNaš cilj je napraviti patcheve od promjena koje smo napravili u našem branch-u: Iz slike vidimo da smo napravili sip-debug branch iz postojećeg 3.0.x koha-lxc:/srv/koha# git format-patch -o sip2-changes 3.0.x sip2-changes/0001-disable-PreFork-to-enable-easy-debugging.patch sip2-changes/0002-remove-eval-so-it-won-t-hide-errors.patch sip2-changes/0003-warn-about-missing-institutions-entry-in-config-xm.patch Ovo će napraviti onoliko patcheva koliko imamo commita na našem branch-u koji smo napravili od 3.0.x am (apply mail patch)Prvo ćemo napraviti novi branch u našem repozitoriju sip2-debug u koji ćemo importati naše patcheve: koha-lxc:/srv/koha# git checkout -b sip2-debug master Switched to a new branch "sip2-debug" Nakon toga možemo applyati samo one promjene koje su nam interesantne: koha-lxc:/srv/koha# git am sip2-changes/0001-disable-PreFork-to-enable-easy-debugging.patch Applying disable PreFork to enable easy debugging koha-lxc:/srv/koha# git am sip2-changes/0002-remove-eval-so-it-won-t-hide-errors.patch Applying remove eval so it won't hide errors koha-lxc:/srv/koha# git am sip2-changes/0003-warn-about-missing-institutions-entry-in-config-xm.patch Applying warn about missing <institutions> entry in config xml slanje na koha-patches listuKoha prima patcheve preko koha-patches liste yada, yada, nije testirano! # create all changes against master in patches dir: git format-patch -p patches master git send-mail --to koha-patches@koha.org patches # reciving side would just pull whole mbox git am mbox Više informacija
Javni repozitorijDa bi drugi korisnici mogli kopirati promjene, dovoljan je samo ssh. Međutim, za anonimne korisnike treba podesiti git-daemon ili http server. Dobar savjet je prvo instalirati gitweb za overview. Druga najjednostavnija stvar je dodati jedan alias tipa: /git /var/cache/git I to će omogućiti checkout preko http-a, npr: dpavlin@t61p:/tmp$ git clone http://git.rot13.org/git/koha.git Initialized empty Git repository in /tmp/koha/.git/ fatal: http://git.rot13.org/git/koha.git/info/refs not found: did you run git update-server-info on the server? Well, skoro. dpavlin@mjesec:/var/cache/git/koha.git$ git-update-server-info Pa da pokušamo još jednom: dpavlin@t61p:/tmp$ git clone http://git.rot13.org/git/koha.git Initialized empty Git repository in /tmp/koha/.git/ |