2008-09-16 5 views
5

Mein Verständnis des Dateiformats Git Pack ist so etwas wie: alt textGit Pack-Datei Eingabeformat

Wo die Tabelle breite 32-Bit ist, und die ersten drei 32-Bit-Wörter sind die Pack-Datei-Header. Die letzte Reihe von 32 Bits sind die ersten 4 Bytes eines Eintrags. Wie ich es verstehe, wird die Größe des Eintrags durch aufeinanderfolgende Bytes mit dem MSB-Satz angegeben, gefolgt von komprimierten Daten.

In dem ersten Byte, dessen MSB nicht festgelegt ist, ist der MSB-Teil der komprimierten Daten, oder ist es eine Lücke? Wenn es Teil der komprimierten Daten ist, wie können Sie garantieren, dass das Bit bei der Komprimierung der Daten nicht gesetzt wird?

Antwort

11

Meine Lektüre der pack file documentation zeigt an, dass das letzte Byte der Größe (Offset 15 in Ihrem Beispiel) würde das MSB gesetzt hat auf 0.

+0

Ich wusste nicht, dass das Pack-Dateiformat in den technischen Dokumenten beschrieben wurde. Ich habe sogar dort nachgesehen und es nicht gefunden. Oh gut. Ich denke, es war in meinem blinden Fleck. Danke! –

6

Es gibt auch einige grafische Dokumentation einige des Formats here zu erklären. Dieser Abschnitt ist nicht mehr im Community-Buch vorhanden, aber immer noch verfügbar.