gitolite hooks vs file a git repoban

Fórumok

Git repobol... pontosabban egy gitolite szerveren levo git repobol szeretnek DNS-t update-elni, amit ugy kepzelek, hogy egy commit+push utan a szerveren egy post-receive hook-bol felnyomom a szerverre az uj zonafile-t.

Csakhogy. Hookot sikerult csinalnom (pl email ertesitest mar kuld), de az a bajom, hogy gitolite oldalon a repository fileait egyaltalan nem latom (pontosabban nem a "normalis" strukturaban, mert objektumkent ott vannak, hulye neven). Vagyis a post-receive scriptben nem tudom azt mondani, hogy csinaljon ezt vagy azt a git repoban levo zones/akarmi file-lal, mert egyaltalaln nincs ott a repo. Vagy megis csak nem talalom? Hogyan lehetne elerni gitolite szerveren egy git repoban levo file-t (speciel a post-receive hook-bol)?

Ja es 2-es gitolite-om van, de egy upgrade beleferhet ha az segit.

Hozzászólások

Én kipulloznám a repót egy munkakönyvtárba és onnan venném a fájlt.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

Jol gondolom, hogy a lokalis gitolite useremnek nincs is semmilyen joga a repokhoz? Szoval ugyanugy ssh kulcsot kell csinalnom neki, meg hozzaadni a jogosultsagokat? Mert ha igen, akkor innentol kezdve ezt a tavoli gepen is megcsinalhatom...
Vagyis ezt szerettem volna a post-receive hook-ban:


  git repoban levo file masolasa messzire (scp)

es ehelyett csinalhatnam ezt:


  lokalis git repo pull, abbol file masolasa messzire (scp)

de akkor mar igy is lehet:


  ssh messzire, ott git pull

Mindenesetre az elso nem mukodik (ugye?) a masik kettohoz meg mindenkeppen kell egy uj gitolite user.

Jól gondolod, ugyanúgy kulcs kell neki meg minden. Bár ha akarod, akkor kipullozhatod „erőszakkal” is, hiszen tudod, hogy hol van a fájlrendszerben és a git működik fájlrendszer-szintű eléréssel is. Ebben az esetben a megkerülted a gitolite-ot. Mondjuk nem is túl szép.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

Igen, mert az bare repó: Nem tartalmazza a working tree-t, csak a meta-adatokat (pont, mint a .git könyvtár). Én nem azt mondtam, hogy onnan tudsz olvasni közvetlenül, hanem hogy onnan kulcs nélkül (a gitolite-ot megkerülve) ki tudod pullozni egy munkakönyvtárba a fájlokat feldolgozáshoz.
Amit te keresel (a working tree-t) azt nem fogod megtalálni közvetlenül a szerveren.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

a bare repo-ban is tudod olvasni git adatbazist

git show master:path/to/file
git show otherbrnach:path/to/file

ha csak egy-ket file tartalma kell, akkor ez sokkal hatekonyabb, mint teljes repo clone helyben vagy tavoli gepen
a git show kimenetet attolhatod temp file-ba vagy a hook szkriptbol kozvetlenul is felhasznalhatod
a parancsnak megadhatsz branch nevet vagy konkret sha1-t is