Browse Source

index: future proof for "extended" index entries

We do not have any more bits in the on-disk index flags word, but we would
need to have more in the future.  Use the last remaining bits as a signal
to tell us that the index entry we are looking at is an extended one.

Since we do not understand the extended format yet, we will just error out
when we see it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 17 years ago
parent
commit
16ce2e4c8f
  1. 1
      cache.h
  2. 4
      read-cache.c

1
cache.h

@ -126,6 +126,7 @@ struct cache_entry { @@ -126,6 +126,7 @@ struct cache_entry {

#define CE_NAMEMASK (0x0fff)
#define CE_STAGEMASK (0x3000)
#define CE_EXTENDED (0x4000)
#define CE_VALID (0x8000)
#define CE_STAGESHIFT 12


4
read-cache.c

@ -1118,6 +1118,10 @@ static void convert_from_disk(struct ondisk_cache_entry *ondisk, struct cache_en @@ -1118,6 +1118,10 @@ static void convert_from_disk(struct ondisk_cache_entry *ondisk, struct cache_en
ce->ce_size = ntohl(ondisk->size);
/* On-disk flags are just 16 bits */
ce->ce_flags = ntohs(ondisk->flags);

/* For future extension: we do not understand this entry yet */
if (ce->ce_flags & CE_EXTENDED)
die("Unknown index entry format");
hashcpy(ce->sha1, ondisk->sha1);

len = ce->ce_flags & CE_NAMEMASK;

Loading…
Cancel
Save