diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-11-15 12:14:37 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-11-15 12:14:37 +0900 |
commit | e539a834555583a482c780b11927b885f8777e90 (patch) | |
tree | 97269ea05540ea06d1709c4138e14b3284b2c85c | |
parent | Merge branch 'bc/submitting-patches-in-asciidoc' (diff) | |
parent | read_index_from(): speed index loading by skipping verification of the entry ... (diff) | |
download | tgif-e539a834555583a482c780b11927b885f8777e90.tar.xz |
Merge branch 'bp/read-index-from-skip-verification'
Drop (perhaps overly cautious) sanity check before using the index
read from the filesystem at runtime.
* bp/read-index-from-skip-verification:
read_index_from(): speed index loading by skipping verification of the entry order
-rw-r--r-- | builtin/fsck.c | 1 | ||||
-rw-r--r-- | cache.h | 1 | ||||
-rw-r--r-- | read-cache.c | 6 |
3 files changed, 8 insertions, 0 deletions
diff --git a/builtin/fsck.c b/builtin/fsck.c index 5f91116d73..04846d46f9 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -759,6 +759,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix) if (keep_cache_objects) { verify_index_checksum = 1; + verify_ce_order = 1; read_cache(); for (i = 0; i < active_nr; i++) { unsigned int mode; @@ -745,6 +745,7 @@ extern int hold_locked_index(struct lock_file *, int); extern void set_alternate_index_output(const char *); extern int verify_index_checksum; +extern int verify_ce_order; /* Environment bits from configuration mechanism */ extern int trust_executable_bit; diff --git a/read-cache.c b/read-cache.c index f3d125c114..b13a1cb8f2 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1511,6 +1511,9 @@ struct ondisk_cache_entry_extended { /* Allow fsck to force verification of the index checksum. */ int verify_index_checksum; +/* Allow fsck to force verification of the cache entry order. */ +int verify_ce_order; + static int verify_hdr(struct cache_header *hdr, unsigned long size) { git_SHA_CTX c; @@ -1668,6 +1671,9 @@ static void check_ce_order(struct index_state *istate) { unsigned int i; + if (!verify_ce_order) + return; + for (i = 1; i < istate->cache_nr; i++) { struct cache_entry *ce = istate->cache[i - 1]; struct cache_entry *next_ce = istate->cache[i]; |