Il giorno Fri, 23 Mar 2012 22:10:49 +0100 Davide Setti <davide.setti@xxxxxxxxx> ha scritto: > Bhe, questione di gusti suppongo. Certamente rispetto a svn non ci > sono paragoni, però una volta che ti abitui all'estrema velocità di > git, mercurial sembra proprio un chiodo... ... se l'unico strumento che hai è un martello... tutto ti sembra un chiodo! 8-) <devil's lawyer mode> Giusto per avere qualche numero, mentre facevo altro ho impegnato il mio pc in qualche prova, mirando al repo git del kernel Linux e al repo hg di mozilla, e questi sono i numeri... ######### ## GIT ## ######### $ time git clone git://github.com/torvalds/linux.git Initialized empty Git repository in /tmp/linux/.git/ remote: Counting objects: 2401052, done. remote: Compressing objects: 100% (759901/759901), done. remote: Total 2401052 (delta 1973209), reused 2039080 (delta 1618000) Receiving objects: 100% (2401052/2401052), 711.75 MiB | 425 KiB/s, done. Resolving deltas: 100% (1973209/1973209), done. real 58m34.192s user 3m9.360s sys 0m33.590s $ du -sh linux/ 1,3G linux/ $ du -sh linux/.git 780M linux/.git $ find linux -path linux/.git -prune -o -print | wc -l 40695 $ time git clone linux linux2 Initialized empty Git repository in /tmp/linux2/.git/ real 3m37.051s user 0m5.500s sys 0m3.840s $ time git log --oneline | wc -l 295476 real 0m15.854s user 0m9.580s sys 0m3.870s $ cd linux $ find drivers -name '*.c' | while read f; do cat MAINTAINERS >> $f; done $ time git st > /dev/null real 0m12.070s user 0m0.260s sys 0m0.690s $ time git commit -m "Fake" -a [master ef7db68] Fake 7959 files changed, 60703293 insertions(+), 0 deletions(-) real 13m32.699s user 1m59.740s sys 0m19.440s ######## ## HG ## ######## $ time hg clone http://hg.mozilla.org/mozilla-central directory di destinazione: mozilla-central sto richiedendo tutte le modifiche sto aggiungendo i changeset sto aggiungendo i manifesti sto aggiungendo le modifiche ai file aggiunti 90140 changeset con 437312 modifiche a 92505 file (+7 head) sto aggiornando al branch default 57495 files updated, 0 files merged, 0 files removed, 0 files unresolved real 29m51.612s user 7m31.200s sys 0m51.790s $ du -sh mozilla-central/ 1,4G mozilla-central/ $ du -sh mozilla-central/.hg 864M mozilla-central/.hg $ time hg clone mozilla-central m2 sto aggiornando al branch default 57495 files updated, 0 files merged, 0 files removed, 0 files unresolved real 9m10.966s user 1m2.310s sys 0m21.010s $ time hg log --template "{node|short}: {author|person} {date|shortdate} {desc|firstline}\n" | wc -l 90140 real 0m29.566s user 0m28.640s sys 0m0.730s $ cd mozilla-central $ find . -name '*.c' | while read f; do cat configure.in >> $f; done $ find . -name '*.cc' | while read f; do cat configure.in >> $f; done $ find . -name '*.cpp' | while read f; do cat configure.in >> $f; done $ time hg st > /dev/null real 0m6.616s user 0m0.970s sys 0m0.750s $ time hg ci -m "Fake" real 5m23.312s user 2m57.910s sys 0m11.090s $ hg log -l1 --stat | tail -1 6843 file modificati, 62408160 inserimenti(+), 4 cancellazioni(-) Sulla macchina dove eseguo le prove ho un filesystem (probabilmente) mal configurato, quindi non fa molto testo il tempo assoluto, ma comparativamente ritengo sia decisamente *esagerato* definire “chiodo” hg, considerato che ci mette la metà per scaricare un repository leggermente più grosso e un quarto dei commit di quello git... e [solo] quattro volte[#] tanto a elencare tutta la storia del repository [con un template custom] Il confronto sul commit parla da solo... Viste le ragguardevoli dimensioni, che a spanne considero di vari ordini di misura più grossi della media dei progetti che solitamente si manipolano, per me è poco significativo scegliere uno strumento o l'altro *solo* perché uno ci mette 9 minuti contro 3 minuti... ma è una considerazione gratuita, ognuno mette l'enfasi dove vuole :-) > Poi certamente che fa pendere per git c'è anche github: clonare pypy > da bitbucket è un parto, credo di averci messo 15 minuti l'ultima > volta. Qui si tratta soprattutto di bitbucket, non tanto di mercurial: > su bitbucket è lento pure git. Appunto, quel che dicevo: continua a farmi sorridere tutto questo hype per la strepitosa velocità dello strumento, quando quasi sempre il limite non è dettato da quello! buona serata, ciao, lele. [#] git: 295k commit -> 15 secondi, hg: 90k commit -> 30 secondi -- Alcuni usano la statistica come l'ubriaco il lampione... per sorreggersi! -- anonimo -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx