Friday, January 20, 2012

git deploy na hosting s ftp pristupom

Co mam
Vlastny server s gitom a priestorom na repozitare, hosting s pristupom iba cez ftp (bohuzial ... ).


Co chcem
Mat lokalnu kopiu repozitaru na ktore prebieha vyvoj, spravit push a tym je vsetko vybavene ... a teda cakam, ze sa zmeny prejavia na hostingu a budem mat spravenu aj zalohu vo forme origin repozitara na vlastnom servery ... 


Co potrebujem
Git, nieco co po push na origin repo synchronizuje posledne zmeny s ftp adresarom na hostingu


Nastroje na ftp sync

lsftp - ma uzitocny prikaz mirror, ktory je popisany pomaly na samostatnu manualovu stranku, takze ho idem testnut ... 
  • da sa krasne prihlasit zo skriptu lftp -u 'jankohrasko,tajneheslo./2345' ftp.hraskovci.sk
  • miror defaultne stahuje veci k namu, ked chcem tlacit tak pouzijeme -R ako reverse
  • takze uplne najjednoduchsie mirror -R cely_folder/ alebo mirror -R local_public_html/.
  • podla testov sa lftp mirror sprava slusne takze prenasa len subory ktore si nezodpovedaju 
  • paralelny prenos sa tiez hodi --parallel=5
  • dalej sa da samozrejme pustit command rovno takto
    • lftp -e 'mirror -R data/.' -u 'jankohrasko,tajneheslo./2345' ftp.hraskovci.sk
Takze teraz uz staci iba iba nahookovat tento prikaz na push na nas repozitar ... 

No a co s git-om 

Neviem ci je to spravne alebo nie, ale ja bezne pracujem tak, ze na vzdialenom stroji si urobim prazdny repozitar. Tento potom dostanem ku mne (git clone cez ssh). Pracujem a ked urobim rozumne zmeny tak ich ulozim na server (git push).

Z toho co som cital sa da zavesit nejaky hook, ktory spusti skript, v ktorom bude git --working-tree=~/home/repos/blah/. checkout -f.
Dolezite veci sa deju v .git/hooks/ ... zaujima nas post-receive. Napiseme do neho co potrebujeme a chmod +x post receive nech sa vie spustit typek.

No comments: