зеркало из https://github.com/microsoft/git.git
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
This commit is contained in:
Коммит
e539a83455
|
@ -759,6 +759,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
||||||
|
|
||||||
if (keep_cache_objects) {
|
if (keep_cache_objects) {
|
||||||
verify_index_checksum = 1;
|
verify_index_checksum = 1;
|
||||||
|
verify_ce_order = 1;
|
||||||
read_cache();
|
read_cache();
|
||||||
for (i = 0; i < active_nr; i++) {
|
for (i = 0; i < active_nr; i++) {
|
||||||
unsigned int mode;
|
unsigned int mode;
|
||||||
|
|
1
cache.h
1
cache.h
|
@ -745,6 +745,7 @@ extern int hold_locked_index(struct lock_file *, int);
|
||||||
extern void set_alternate_index_output(const char *);
|
extern void set_alternate_index_output(const char *);
|
||||||
|
|
||||||
extern int verify_index_checksum;
|
extern int verify_index_checksum;
|
||||||
|
extern int verify_ce_order;
|
||||||
|
|
||||||
/* Environment bits from configuration mechanism */
|
/* Environment bits from configuration mechanism */
|
||||||
extern int trust_executable_bit;
|
extern int trust_executable_bit;
|
||||||
|
|
|
@ -1511,6 +1511,9 @@ struct ondisk_cache_entry_extended {
|
||||||
/* Allow fsck to force verification of the index checksum. */
|
/* Allow fsck to force verification of the index checksum. */
|
||||||
int verify_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)
|
static int verify_hdr(struct cache_header *hdr, unsigned long size)
|
||||||
{
|
{
|
||||||
git_SHA_CTX c;
|
git_SHA_CTX c;
|
||||||
|
@ -1668,6 +1671,9 @@ static void check_ce_order(struct index_state *istate)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
if (!verify_ce_order)
|
||||||
|
return;
|
||||||
|
|
||||||
for (i = 1; i < istate->cache_nr; i++) {
|
for (i = 1; i < istate->cache_nr; i++) {
|
||||||
struct cache_entry *ce = istate->cache[i - 1];
|
struct cache_entry *ce = istate->cache[i - 1];
|
||||||
struct cache_entry *next_ce = istate->cache[i];
|
struct cache_entry *next_ce = istate->cache[i];
|
||||||
|
|
Загрузка…
Ссылка в новой задаче