On Fri, Sep 6, 2013 at 10:23 AM, Nicolas Pitre <n...@fluxnic.net> wrote:
> On Fri, 6 Sep 2013, Nguy­n Thái Ng÷c Duy wrote:
>> Signed-off-by: Nguy­n Thái Ng÷c Duy <pclo...@gmail.com>
>> ---
>>  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
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
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to