Thread updates von eigenen programmen, wie erstelle ich updatedateien? (15 answers)
Opened by #Kein Kommentar at 2009-09-18 16:38

sid burn
 2009-09-21 15:57
#125986 #125986
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
Keine Deltas? Hast du einen Beleg fuer diese Aussage?

Ich habe das Buch http://www.amazon.de/Version-Control-Git-Jon-Loeli... gelesen. Da wird ausführlich erklärt wie Git intern arbeitet. Intern arbeitet Git so das es jede Datei vollständig Speichert und darüber eine SHA1 Summe generiert. Dieses ist dann für Git ein "objekt".

Änderst du eine Datei wird die neue Datei wieder komplett gespeichert und die SHA1 Summe gespeichert und du hast ein weiteres neues Objekt. Deltas werden bei git nur dann generiert wenn es nötig ist. z.B. bei einem "git diff" aber werden letztendlich nie gespeichert.

Hast du also drei unterschiedliche versionen einer Datei, ist die Datei dreimal vollständig im Repro enthalten. SVN als Beispiel speichert nur die Deltas. Also bei einer neuen commit werden nur die Deltas gespeichert um von der vorherigen version zur nächsten zu kommen, also ein Patch, aber nicht mehr die vollständige Datei.

Andere "öffentlichen Quellen" kann ich gerade dafür nicht nennen.

Quote
Ein "git clone" dauert wesentlich Laenger als als "git pull", was sich nur Aenderungen reinholt - fuer mich ist das ein klares Zeichen davon, dass tatsaehlich Deltas ausgetauscht werden, und nicht immer das komplette Repository uebertragen wird.

Hmm, was verstehst du nun unter Deltas? Ich verstehe darunter z.B. das was "git diff" liefert, also nur die unterschiede zweischen zwei dateien.

Bei einem "git pull" werden latztendlich natürlich nur die fehlende objekte geholt die in deinem Repository noch nicht vorhanden sind. Wenn du das unter Delta verstanden hast, dann ja das macht Git natürlich auch.

Trotzdem werden keine Deltas von Dateien ausgetauscht, sondern jedesmal die kompletten Objekte und somit die kompletten Dateien komplett synchronisiert. Ein "git pull" ist also natürlich auch schneller, weil du nicht mehr alle Objekte übertragen musst wie bei einem "git clone".
Last edited: 2009-09-21 16:01:17 +0200 (CEST)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread updates von eigenen programmen, wie erstelle ich updatedateien?