Merge branch 'en/present-despite-skipped'

In sparse-checkouts, files mis-marked as missing from the working tree
could lead to later problems.  Such files were hard to discover, and
harder to correct.  Automatically detecting and correcting the marking
of such files has been added to avoid these problems.

* en/present-despite-skipped:
  repo_read_index: add config to expect files outside sparse patterns
  Accelerate clear_skip_worktree_from_present_files() by caching
  Update documentation related to sparsity and the skip-worktree bit
  repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
  unpack-trees: fix accidental loss of user changes
  t1011: add testcase demonstrating accidental loss of user modifications
This commit is contained in:
Junio C Hamano
2022-03-09 13:38:23 -08:00
19 changed files with 310 additions and 127 deletions

View File

@ -1654,6 +1654,17 @@ static int git_default_core_config(const char *var, const char *value, void *cb)
return platform_core_config(var, value, cb);
}
static int git_default_sparse_config(const char *var, const char *value)
{
if (!strcmp(var, "sparse.expectfilesoutsideofpatterns")) {
sparse_expect_files_outside_of_patterns = git_config_bool(var, value);
return 0;
}
/* Add other config variables here and to Documentation/config/sparse.txt. */
return 0;
}
static int git_default_i18n_config(const char *var, const char *value)
{
if (!strcmp(var, "i18n.commitencoding"))
@ -1785,6 +1796,9 @@ int git_default_config(const char *var, const char *value, void *cb)
return 0;
}
if (starts_with(var, "sparse."))
return git_default_sparse_config(var, value);
/* Add other config variables here and to Documentation/config.txt. */
return 0;
}