2012/2/8 Catalin(ux) M. BOIE <ca...@embedromix.ro>:
> On Mon, 6 Feb 2012, Petru Ratiu wrote:
>
> Salut!
>
>> Am urmatoarea problema: trebuie sa fac pe un server mai multe clone de
>> git si as vrea sa reduc consumul de disk space, ca atare le fac pe
>> toate clone de pe un repo "master" local, cu git clone -l , ca sa-mi
>> hardlinkeze obectele de prin .git.
>>
>> Dilema mea este daca am cum reface deduplicarea pe clone existente (ca
>> sa pot sa "cut out the middleman" si sa le mentin la zi de pe un
>> origin remote).
>>
>> For now, am urmatoarele variante:
>> - git "magic_fetch" local_repo, care sa refaca hardlinkurile (in
>> manualul de fetch n-am gasit nimic, chestia aia cu -l e git-clone
>> specific);
>> - ceva aplicatie independenta de deduplicare care sa hardlinkeze
>> fisiere cu acelasi nume (desi cred ca compactarea repo-ului m-ar
>> incurca);
>> - sa las remote-ul local ca "origin" si sa fac ceva hooks care sa
>> impinga automagic chestii de pe cel oficial, ca sa fie cat mai in
>> sync.
>
> "git clone --shared" e OK pentru flow-ul tau?


Problema mea e ca git clone -s face scamatoria doar la inceput, ma
ingrijoreaza cum o sa mentin hardlinks si pt. obiecte din commituri
ulterioare fara sa refac clonele periodic

> Daca da, repo-urile deja clonate le poti converti la shared:
> - Daca ai commit-uri pe clone, in plus fata de master repo, va trebui sa
> le salvezi: git format-patch <HEAD_COMUN>..
> - Faci backup si stergi recursiv directoarele .git/objects/?? si fisierele
> .git/objects/pack/* si .git/objects/info/packs
> - Creezi .git/objects/info/alternates in care pui calea completa catre
> directorul "objects" din celalalt repo.
> - Aplici patch-urile generate in primul pas cu "git am"

Suna complicat, mai bine le refac ca shared o data pe luna de pe ceva
local comun.

> In legatura cu script-ul care sa faca automat hardlink-uri: nu prea o sa
> tina: "git gc" taie hardlink-urile. Iar "git gc --auto" este apelat de mai
> multe comenzi git.

Da, cam asta ma gandeam si eu, dar ma gandeam ca la o adica merita sa
dezactivez auto-pack sau cum se cheama traznaia ca sa pot economisi
spatiu de la 30-40 de sandboxuri relativ identice.

Mda, in lipsa unui flag echivalent cu --shared la fetch (am gasit
niste wishlist bugs, dar nu pare sa fie implementat), cel mai simplu
ramane sa le re-clonez din cand in cand.

Mersi de sugestii,

-- 
Petre.
_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui