Git - optimalizace vykonu

Vlada Macek macek na sandbox.cz
Pondělí Leden 12 14:06:00 CET 2009


Jan Kasprzak wrote:
> Zatim se zda, ze netrivialni mnozstvi casu (> 1 sekundu) bere
> prekvapive krok 2 (commit) a jeste vic krok 4 (pull). Na docela
> rychlem serveru commit jednoho souboru treba ted vzal 9 sekund a ten
> pull 12 sekund. A pritom krok 1 ktery vlastne musi projit celou
> checkoutovanou strukturu a podivat se jestli se nekde neco nezmenilo,
> bere jednu vterinu nebo i mene. Casto se cela akce (body 1.-4.) vejde
> do jedne vteriny, ale nekdy take trva dost dlouho.

A co ta masina po tu dobu dela, ktery prostredek (CPU/disk) je vytizen?

Pokud je repo vzdalene, tak u push a pull zabere nejaky cas navazovani
ssh spojeni, coz muzete zkratit na zlomek sekundy tim, ze na vzdalene
masiny bude ssh spojeni trvale otevrene (socket v ~/.ssh) a dalsi ssh
klienti ho pouzivaji, hledejte 'connection sharing' v man ssh.

    Mam v .bashrc aliasy pro jednotlive servery, ktere mi prvnim
    prihlaseni na user na host spusti na pozadi ssh -M, ktere vytvori
    socket ~/.ssh/master-user na host a dalsi pripojeni uz jsou bleskova.

    Pouzivam to mj. na synchronizace pomoci rsync (rsync -e "ssh -S
    ~/.ssh/master-user na host" ...). Preskoci se tim i autentizace.
    Zajemcum skript poskytnu.

I kdyby to nebylo zpusobeno ssh, tak se tem casum ani moc nevidim.
Neznam vnitrnosti gitu (ac se nedavno velmi rychle stal mym favoritem),
ale tipnul bych si, ze jeho navrh nesmeroval k urychleni operaci
'commit' a 'pull', protoze ty programator obvykle nedela casto, ale
prave 'add', ktera by mela byt frekventovana.


> Co byste poradili? [ META: nesnazte se mi radit zmeny workflow; zde
> jsem popsal jen minimalni stav, workflow menit v teto fazi nemuzu;
> jde mi fakt jen o to jak zrychlit vyse uvedena volani gitu ]

Jen poznamka: Sam pracuju nekdy tak, ze commituju pouze verze, ktere
jsou hotove a dokud si tim nejsem jisty, tak na produkcni server
aktualizuju rsyncem. Ale pokud na produkcni server delam pull, tak je to
tak zridka, ze zpozdeni nevadi.

-- 
\//\/\
http://macek.sandbox.cz
http://www.easis.cz



Další informace o konferenci Linux