Merge branch 'jc/maint-1.6.0-split-diff-metainfo' into jc/maint-split-diff-metainfo
[gitweb.git] / Documentation / technical / pack-format.txt
index a80baa4382ce72cd6d3e1f1719a17264fc36ee02..1803e64e465fa4f8f0fe520fc0fd95d0c9def5bd 100644 (file)
@@ -103,10 +103,24 @@ Pack file entry: <+
      packed object data:
         If it is not DELTA, then deflated bytes (the size above
                is the size before compression).
-       If it is DELTA, then
+       If it is REF_DELTA, then
          20-byte base object name SHA1 (the size above is the
                size of the delta data that follows).
           delta data, deflated.
+       If it is OFS_DELTA, then
+         n-byte offset (see below) interpreted as a negative
+               offset from the type-byte of the header of the
+               ofs-delta entry (the size above is the size of
+               the delta data that follows).
+         delta data, deflated.
+
+     offset encoding:
+         n bytes with MSB set in all but the last one.
+         The offset is then the number constructed by
+         concatenating the lower 7 bit of each byte, and
+         for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1))
+         to the result.
+
 
 
 = Version 2 pack-*.idx files support packs larger than 4 GiB, and
@@ -125,7 +139,7 @@ Pack file entry: <+
 
   - A table of 4-byte CRC32 values of the packed object data.
     This is new in v2 so compressed data can be copied directly
-    from pack to pack during repacking withough undetected
+    from pack to pack during repacking without undetected
     data corruption.
 
   - A table of 4-byte offset values (in network byte order).