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? 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" Clar, daca development-ul e in stadiu avansat, pe 5000 de branch-uri, "git format-patch" trebuie automatizat. 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. Bafta! > Thanks, > -- > Petre. > _______________________________________________ > RLUG mailing list > RLUG@lists.lug.ro > http://lists.lug.ro/mailman/listinfo/rlug > -- Catalin(ux) M. BOIE http://kernel.embedromix.ro/ _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug