Ich habe in mehreren Diskussionen hier und in SO gelesen, dass DVCS-Repositorys ungefähr denselben oder weniger Speicherplatz beanspruchen als ihre zentralisierten Gegenstücke. Ich habe es vielleicht verpasst, aber ich habe keine gute Erklärung dafür gefunden, warum das so ist. Weiß jemand?
15
Antworten:
Aus eigener Erfahrung sind folgende Aussagen zutreffend:
Wenn Sie den Checkout-Speicherort (bei dem es sich um ein Repository für sich selbst handelt) mit Git vergleichen, sieht die Geschichte ganz anders aus:
Wenn Sie die Anzahl der Bytes vergleichen, die Sie herunterladen oder hochladen müssen, ist dies wieder anders.
Am Ende vergleichen Sie also Äpfel mit Orangen, und je nachdem, was Sie mit Subversion oder Git machen möchten, kann das Ergebnis unterschiedlich sein.
@jk fragte nach vollständigen Kopien oder binären Diffs, und ich konnte diese Frage nicht beantworten. Ich habe Matthew McCullough gefragt, der kürzlich auf der Jax 2012 einen Git-Workshop gegeben hat (den ich besucht habe). Er hat sich die Zeit genommen (vielen Dank an ihn), um mit einer detaillierten Zusammenfassung die innere Arbeitsweise von Git zu erklären . Also ja, dort wird eine Komprimierung durchgeführt (und ich werde auch ein Experiment mit einer Microsoft Office-Datei durchführen und das mit seinem Inhalt vergleichen), aber nein, die Komprimierung wird für die gesamte Datei durchgeführt. Aus seinem Kern zitieren:
quelle
git gc
oder wenn sich zu viele lose Objekte ansammeln, werden gute Kandidaten für eine Delta-Komprimierung gefunden (Git kann sich von der vorherigen Version unterscheiden), die Deltas werden in einer "Packung" gespeichert und die losen Objekte werden entfernt.