On Fri, Sep 6, 2013 at 10:23 AM, Nicolas Pitre <nico@xxxxxxxxxxx> wrote: > On Fri, 6 Sep 2013, Nguyn Thái Ng÷c Duy wrote: > >> >> Signed-off-by: Nguyn Thái Ng÷c Duy <pclouds@xxxxxxxxx> >> --- >> Should be up to date with Nico's latest implementation and also cover >> additions to the format that everybody seems to agree on: >> >> - new types for canonical trees and commits >> - sha-1 table covering missing objects in thin packs > > Great! I've merged this into my branch with the following amendment: I'd like to propose another change in the format to basically limit the use of sha1ref format "\0<SHA-1>" to tree entries only. All forms of deltas must have non-zero sha1 index (i.e. reference to SHA-1 table). It will simplify handling code, and I think it makes sense too diff --git a/Documentation/technical/pack-format.txt b/Documentation/technical/pack-format.txt index d0c2cde..399416b 100644 --- a/Documentation/technical/pack-format.txt +++ b/Documentation/technical/pack-format.txt @@ -74,7 +74,8 @@ Git pack format Blobs and tags are deltified and compressed the same way in v3. Commits are not deltified. Trees are deltified using - special copy sequences. + special copy sequences. The base object name index in deltified + format must not be zero (i.e. it must point to SHA-1 table). Trees and commits in canonical types are in the same format as v2: in canonical format and deflated. They can be used for @@ -166,6 +167,8 @@ Git pack format set, it will be followed by a base tree SHA-1. If it's not set, the last base tree will be used. + base_sha1_index cannot be zero and followed by full SHA-1. + == Original (version 1) pack-*.idx files have the following format: - The header consists of 256 4-byte network byte order -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html