Ho letto su diverse discussioni qui e su SO che i repository DVCS utilizzano lo stesso o meno spazio delle loro controparti centralizzate. Potrei averlo perso, ma non ho trovato una buona spiegazione del perché. Qualcuno sa?
Ho letto su diverse discussioni qui e su SO che i repository DVCS utilizzano lo stesso o meno spazio delle loro controparti centralizzate. Potrei averlo perso, ma non ho trovato una buona spiegazione del perché. Qualcuno sa?
Risposte:
Dalla mia esperienza, le seguenti affermazioni sono tutte vere:
Se si confronta la posizione di pagamento (che è un repository in sé con Git), la storia è completamente diversa:
Se si confronta la quantità di byte da scaricare o caricare, è di nuovo diverso.
Quindi, alla fine, confronti le mele con le arance e, a seconda di cosa vuoi fare con Subversion o Git, il risultato potrebbe essere diverso.
@jk ha chiesto informazioni su copie complete o differenze binarie e non ho potuto rispondere a questa domanda. Ho chiesto a Matthew McCullough che ha tenuto un workshop Git di recente a Jax 2012 (che ho visitato). Si è preso il tempo (grazie mille a lui) per spiegare con una sintesi dettagliata il funzionamento interiore di Git. Quindi sì, c'è una compressione che funziona lì (e farò anche un esperimento con un file di Microsoft Office e lo confronterò con il suo significato), ma no, la compressione viene eseguita sull'intero file. Citando dal suo succo:
Gli oggetti sciolti sono scritti in formato compresso, ma non delta al momento di ogni commit.
git gc
o si accumulano troppi oggetti sfusi, trova buoni candidati per delta-comprimerli (git può differire rispetto alla versione precedente), memorizza i delta in un "pacchetto" e rimuove gli oggetti sfusi.