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

Raspunde prin e-mail lui