cocci: apply "pending" index-compatibility to some "builtin/*.c"

Apply "index-compatibility.pending.cocci" rule to "builtin/*", but
exclude those where we conflict with in-flight changes.

As a result some of them end up using only "the_index", so let's have
them use the more narrow "USE_THE_INDEX_VARIABLE" rather than
"USE_THE_INDEX_COMPATIBILITY_MACROS".

Manual changes not made by coccinelle, that were squashed in:

* Whitespace-wrap argument lists for repo_hold_locked_index(),
  repo_read_index_preload() and repo_refresh_and_write_index(), in cases
  where the line became too long after the transformation.
* Change "refresh_cache()" to "refresh_index()" in a comment in
  "builtin/update-index.c".
* For those whose call was followed by perror("<macro-name>"), change
  it to perror("<function-name>"), referring to the new function.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-11-19 14:07:38 +01:00 committed by Junio C Hamano
parent bdafeae0b9
commit 07047d6829
30 changed files with 213 additions and 202 deletions

View File

@ -3,7 +3,7 @@
* *
* Copyright (C) 2006 Linus Torvalds * Copyright (C) 2006 Linus Torvalds
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "builtin.h" #include "builtin.h"
@ -312,7 +312,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("Could not read the index")); die(_("Could not read the index"));
repo_init_revisions(the_repository, &rev, prefix); repo_init_revisions(the_repository, &rev, prefix);
@ -544,7 +544,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
/* /*
* Check the "pathspec '%s' did not match any files" block * Check the "pathspec '%s' did not match any files" block
@ -587,7 +587,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
(!(addremove || take_worktree_changes) (!(addremove || take_worktree_changes)
? ADD_CACHE_IGNORE_REMOVAL : 0)); ? ADD_CACHE_IGNORE_REMOVAL : 0));
if (read_cache_preload(&pathspec) < 0) if (repo_read_index_preload(the_repository, &pathspec, 0) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
die_in_unpopulated_submodule(&the_index, prefix); die_in_unpopulated_submodule(&the_index, prefix);

View File

@ -1519,8 +1519,8 @@ static int run_apply(const struct am_state *state, const char *index_file)
if (index_file) { if (index_file) {
/* Reload index as apply_all_patches() will have modified it. */ /* Reload index as apply_all_patches() will have modified it. */
discard_cache(); discard_index(&the_index);
read_cache_from(index_file); read_index_from(&the_index, index_file, get_git_dir());
} }
return 0; return 0;
@ -1562,8 +1562,8 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa
if (build_fake_ancestor(state, index_path)) if (build_fake_ancestor(state, index_path))
return error("could not build fake ancestor"); return error("could not build fake ancestor");
discard_cache(); discard_index(&the_index);
read_cache_from(index_path); read_index_from(&the_index, index_path, get_git_dir());
if (write_index_as_tree(&orig_tree, &the_index, index_path, 0, NULL)) if (write_index_as_tree(&orig_tree, &the_index, index_path, 0, NULL))
return error(_("Repository lacks necessary blobs to fall back on 3-way merge.")); return error(_("Repository lacks necessary blobs to fall back on 3-way merge."));
@ -1596,8 +1596,8 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa
say(state, stdout, _("Falling back to patching base and 3-way merge...")); say(state, stdout, _("Falling back to patching base and 3-way merge..."));
discard_cache(); discard_index(&the_index);
read_cache(); repo_read_index(the_repository);
/* /*
* This is not so wrong. Depending on which base we picked, orig_tree * This is not so wrong. Depending on which base we picked, orig_tree
@ -1781,7 +1781,8 @@ static void am_run(struct am_state *state, int resume)
unlink(am_path(state, "dirtyindex")); unlink(am_path(state, "dirtyindex"));
if (refresh_and_write_cache(REFRESH_QUIET, 0, 0) < 0) if (repo_refresh_and_write_index(the_repository, REFRESH_QUIET, 0, 0,
NULL, NULL, NULL) < 0)
die(_("unable to write index file")); die(_("unable to write index file"));
if (repo_index_has_changes(the_repository, NULL, &sb)) { if (repo_index_has_changes(the_repository, NULL, &sb)) {
@ -1967,9 +1968,9 @@ static int fast_forward_to(struct tree *head, struct tree *remote, int reset)
if (parse_tree(head) || parse_tree(remote)) if (parse_tree(head) || parse_tree(remote))
return -1; return -1;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
refresh_cache(REFRESH_QUIET); refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
memset(&opts, 0, sizeof(opts)); memset(&opts, 0, sizeof(opts));
opts.head_idx = 1; opts.head_idx = 1;
@ -2007,7 +2008,7 @@ static int merge_tree(struct tree *tree)
if (parse_tree(tree)) if (parse_tree(tree))
return -1; return -1;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
memset(&opts, 0, sizeof(opts)); memset(&opts, 0, sizeof(opts));
opts.head_idx = 1; opts.head_idx = 1;

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
@ -115,7 +115,7 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, check_attr_options, argc = parse_options(argc, argv, prefix, check_attr_options,
check_attr_usage, PARSE_OPT_KEEP_DASHDASH); check_attr_usage, PARSE_OPT_KEEP_DASHDASH);
if (read_cache() < 0) { if (repo_read_index(the_repository) < 0) {
die("invalid cache"); die("invalid cache");
} }

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
@ -179,7 +179,7 @@ int cmd_check_ignore(int argc, const char **argv, const char *prefix)
die(_("--non-matching is only valid with --verbose")); die(_("--non-matching is only valid with --verbose"));
/* read_cache() is only necessary so we can watch out for submodules. */ /* read_cache() is only necessary so we can watch out for submodules. */
if (!no_index && read_cache() < 0) if (!no_index && repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
setup_standard_excludes(&dir); setup_standard_excludes(&dir);

View File

@ -4,7 +4,7 @@
* Copyright (C) 2005 Linus Torvalds * Copyright (C) 2005 Linus Torvalds
* *
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "config.h" #include "config.h"
#include "dir.h" #include "dir.h"
@ -65,7 +65,7 @@ static void write_tempfile_record(const char *name, const char *prefix)
static int checkout_file(const char *name, const char *prefix) static int checkout_file(const char *name, const char *prefix)
{ {
int namelen = strlen(name); int namelen = strlen(name);
int pos = cache_name_pos(name, namelen); int pos = index_name_pos(&the_index, name, namelen);
int has_same_name = 0; int has_same_name = 0;
int is_file = 0; int is_file = 0;
int is_skipped = 1; int is_skipped = 1;
@ -249,7 +249,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
if (read_cache() < 0) { if (repo_read_index(the_repository) < 0) {
die("invalid cache"); die("invalid cache");
} }
@ -270,7 +270,8 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
if (index_opt && !state.base_dir_len && !to_tempfile) { if (index_opt && !state.base_dir_len && !to_tempfile) {
state.refresh_cache = 1; state.refresh_cache = 1;
state.istate = &the_index; state.istate = &the_index;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file,
LOCK_DIE_ON_ERROR);
} }
get_parallel_checkout_configs(&pc_workers, &pc_threshold); get_parallel_checkout_configs(&pc_workers, &pc_threshold);

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "advice.h" #include "advice.h"
#include "blob.h" #include "blob.h"
@ -148,7 +148,7 @@ static int update_some(const struct object_id *oid, struct strbuf *base,
* entry in place. Whether it is UPTODATE or not, checkout_entry will * entry in place. Whether it is UPTODATE or not, checkout_entry will
* do the right thing. * do the right thing.
*/ */
pos = cache_name_pos(ce->name, ce->ce_namelen); pos = index_name_pos(&the_index, ce->name, ce->ce_namelen);
if (pos >= 0) { if (pos >= 0) {
struct cache_entry *old = the_index.cache[pos]; struct cache_entry *old = the_index.cache[pos];
if (ce->ce_mode == old->ce_mode && if (ce->ce_mode == old->ce_mode &&
@ -529,7 +529,7 @@ static int checkout_paths(const struct checkout_opts *opts,
} }
repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
if (read_cache_preload(&opts->pathspec) < 0) if (repo_read_index_preload(the_repository, &opts->pathspec, 0) < 0)
return error(_("index file corrupt")); return error(_("index file corrupt"));
if (opts->source_tree) if (opts->source_tree)
@ -741,8 +741,8 @@ static int merge_working_tree(const struct checkout_opts *opts,
struct lock_file lock_file = LOCK_INIT; struct lock_file lock_file = LOCK_INIT;
struct tree *new_tree; struct tree *new_tree;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
if (read_cache_preload(NULL) < 0) if (repo_read_index_preload(the_repository, NULL, 0) < 0)
return error(_("index file corrupt")); return error(_("index file corrupt"));
resolve_undo_clear_index(&the_index); resolve_undo_clear_index(&the_index);
@ -762,7 +762,7 @@ static int merge_working_tree(const struct checkout_opts *opts,
struct unpack_trees_options topts; struct unpack_trees_options topts;
const struct object_id *old_commit_oid; const struct object_id *old_commit_oid;
refresh_cache(REFRESH_QUIET); refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
if (unmerged_index(&the_index)) { if (unmerged_index(&the_index)) {
error(_("you need to resolve your current index first")); error(_("you need to resolve your current index first"));

View File

@ -6,7 +6,7 @@
* Based on git-clean.sh by Pavel Roskin * Based on git-clean.sh by Pavel Roskin
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
@ -1012,7 +1012,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
pl = add_pattern_list(&dir, EXC_CMDL, "--exclude option"); pl = add_pattern_list(&dir, EXC_CMDL, "--exclude option");

View File

@ -8,7 +8,7 @@
* Clone a repository into a different directory that does not yet exist. * Clone a repository into a different directory that does not yet exist.
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "config.h" #include "config.h"
#include "lockfile.h" #include "lockfile.h"
@ -703,7 +703,7 @@ static int checkout(int submodule_progress, int filter_submodules)
/* We need to be in the new work tree for the checkout */ /* We need to be in the new work tree for the checkout */
setup_work_tree(); setup_work_tree();
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
memset(&opts, 0, sizeof opts); memset(&opts, 0, sizeof opts);
opts.update = 1; opts.update = 1;

View File

@ -316,7 +316,7 @@ static void create_base_index(const struct commit *current_head)
struct tree_desc t; struct tree_desc t;
if (!current_head) { if (!current_head) {
discard_cache(); discard_index(&the_index);
return; return;
} }
@ -343,7 +343,7 @@ static void refresh_cache_or_die(int refresh_flags)
* refresh_flags contains REFRESH_QUIET, so the only errors * refresh_flags contains REFRESH_QUIET, so the only errors
* are for unmerged entries. * are for unmerged entries.
*/ */
if (refresh_cache(refresh_flags | REFRESH_IN_PORCELAIN)) if (refresh_index(&the_index, refresh_flags | REFRESH_IN_PORCELAIN, NULL, NULL, NULL))
die_resolve_conflict("commit"); die_resolve_conflict("commit");
} }
@ -382,12 +382,13 @@ static const char *prepare_index(const char **argv, const char *prefix,
(!amend || (fixup_message && strcmp(fixup_prefix, "amend")))))) (!amend || (fixup_message && strcmp(fixup_prefix, "amend"))))))
die(_("No paths with --include/--only does not make sense.")); die(_("No paths with --include/--only does not make sense."));
if (read_cache_preload(&pathspec) < 0) if (repo_read_index_preload(the_repository, &pathspec, 0) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
if (interactive) { if (interactive) {
char *old_index_env = NULL, *old_repo_index_file; char *old_index_env = NULL, *old_repo_index_file;
hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &index_lock,
LOCK_DIE_ON_ERROR);
refresh_cache_or_die(refresh_flags); refresh_cache_or_die(refresh_flags);
@ -410,8 +411,9 @@ static const char *prepare_index(const char **argv, const char *prefix,
unsetenv(INDEX_ENVIRONMENT); unsetenv(INDEX_ENVIRONMENT);
FREE_AND_NULL(old_index_env); FREE_AND_NULL(old_index_env);
discard_cache(); discard_index(&the_index);
read_cache_from(get_lock_file_path(&index_lock)); read_index_from(&the_index, get_lock_file_path(&index_lock),
get_git_dir());
if (update_main_cache_tree(WRITE_TREE_SILENT) == 0) { if (update_main_cache_tree(WRITE_TREE_SILENT) == 0) {
if (reopen_lock_file(&index_lock) < 0) if (reopen_lock_file(&index_lock) < 0)
die(_("unable to write index file")); die(_("unable to write index file"));
@ -438,7 +440,8 @@ static const char *prepare_index(const char **argv, const char *prefix,
* (B) on failure, rollback the real index. * (B) on failure, rollback the real index.
*/ */
if (all || (also && pathspec.nr)) { if (all || (also && pathspec.nr)) {
hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &index_lock,
LOCK_DIE_ON_ERROR);
add_files_to_cache(also ? prefix : NULL, &pathspec, 0); add_files_to_cache(also ? prefix : NULL, &pathspec, 0);
refresh_cache_or_die(refresh_flags); refresh_cache_or_die(refresh_flags);
update_main_cache_tree(WRITE_TREE_SILENT); update_main_cache_tree(WRITE_TREE_SILENT);
@ -459,7 +462,8 @@ static const char *prepare_index(const char **argv, const char *prefix,
* We still need to refresh the index here. * We still need to refresh the index here.
*/ */
if (!only && !pathspec.nr) { if (!only && !pathspec.nr) {
hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &index_lock,
LOCK_DIE_ON_ERROR);
refresh_cache_or_die(refresh_flags); refresh_cache_or_die(refresh_flags);
if (the_index.cache_changed if (the_index.cache_changed
|| !cache_tree_fully_valid(the_index.cache_tree)) || !cache_tree_fully_valid(the_index.cache_tree))
@ -505,13 +509,13 @@ static const char *prepare_index(const char **argv, const char *prefix,
if (list_paths(&partial, !current_head ? NULL : "HEAD", &pathspec)) if (list_paths(&partial, !current_head ? NULL : "HEAD", &pathspec))
exit(1); exit(1);
discard_cache(); discard_index(&the_index);
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("cannot read the index")); die(_("cannot read the index"));
hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &index_lock, LOCK_DIE_ON_ERROR);
add_remove_files(&partial); add_remove_files(&partial);
refresh_cache(REFRESH_QUIET); refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
update_main_cache_tree(WRITE_TREE_SILENT); update_main_cache_tree(WRITE_TREE_SILENT);
if (write_locked_index(&the_index, &index_lock, 0)) if (write_locked_index(&the_index, &index_lock, 0))
die(_("unable to write new_index file")); die(_("unable to write new_index file"));
@ -523,14 +527,14 @@ static const char *prepare_index(const char **argv, const char *prefix,
create_base_index(current_head); create_base_index(current_head);
add_remove_files(&partial); add_remove_files(&partial);
refresh_cache(REFRESH_QUIET); refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
if (write_locked_index(&the_index, &false_lock, 0)) if (write_locked_index(&the_index, &false_lock, 0))
die(_("unable to write temporary index file")); die(_("unable to write temporary index file"));
discard_cache(); discard_index(&the_index);
ret = get_lock_file_path(&false_lock); ret = get_lock_file_path(&false_lock);
read_cache_from(ret); read_index_from(&the_index, ret, get_git_dir());
out: out:
string_list_clear(&partial, 0); string_list_clear(&partial, 0);
clear_pathspec(&pathspec); clear_pathspec(&pathspec);
@ -1068,9 +1072,9 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
* and could have updated it. We must do this before we invoke * and could have updated it. We must do this before we invoke
* the editor and after we invoke run_status above. * the editor and after we invoke run_status above.
*/ */
discard_cache(); discard_index(&the_index);
} }
read_cache_from(index_file); read_index_from(&the_index, index_file, get_git_dir());
if (update_main_cache_tree(0)) { if (update_main_cache_tree(0)) {
error(_("Error building trees")); error(_("Error building trees"));
@ -1556,7 +1560,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
&s.pathspec, NULL, NULL); &s.pathspec, NULL, NULL);
if (use_optional_locks()) if (use_optional_locks())
fd = hold_locked_index(&index_lock, 0); fd = repo_hold_locked_index(the_repository, &index_lock, 0);
else else
fd = -1; fd = -1;

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "lockfile.h" #include "lockfile.h"
@ -653,10 +653,11 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
int fd, result; int fd, result;
setup_work_tree(); setup_work_tree();
read_cache(); repo_read_index(the_repository);
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED,
NULL, NULL, NULL); NULL, NULL, NULL);
fd = hold_locked_index(&index_lock, 0); fd = repo_hold_locked_index(the_repository,
&index_lock, 0);
if (0 <= fd) if (0 <= fd)
repo_update_index_if_able(the_repository, &index_lock); repo_update_index_if_able(the_repository, &index_lock);

View File

@ -3,7 +3,6 @@
* *
* Copyright (C) Linus Torvalds, 2005 * Copyright (C) Linus Torvalds, 2005
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "diff.h" #include "diff.h"
@ -76,8 +75,8 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix)
(rev.diffopt.output_format & DIFF_FORMAT_PATCH)) (rev.diffopt.output_format & DIFF_FORMAT_PATCH))
diff_merges_set_dense_combined_if_unset(&rev); diff_merges_set_dense_combined_if_unset(&rev);
if (read_cache_preload(&rev.diffopt.pathspec) < 0) { if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0) {
perror("read_cache_preload"); perror("repo_read_index_preload");
result = -1; result = -1;
goto cleanup; goto cleanup;
} }

View File

@ -1,4 +1,3 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "diff.h" #include "diff.h"
@ -62,12 +61,12 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix)
usage(diff_cache_usage); usage(diff_cache_usage);
if (!(option & DIFF_INDEX_CACHED)) { if (!(option & DIFF_INDEX_CACHED)) {
setup_work_tree(); setup_work_tree();
if (read_cache_preload(&rev.diffopt.pathspec) < 0) { if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0) {
perror("read_cache_preload"); perror("repo_read_index_preload");
return -1; return -1;
} }
} else if (read_cache() < 0) { } else if (repo_read_index(the_repository) < 0) {
perror("read_cache"); perror("repo_read_index");
return -1; return -1;
} }
result = run_diff_index(&rev, option); result = run_diff_index(&rev, option);

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "diff.h" #include "diff.h"
@ -120,7 +120,7 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
repo_init_revisions(the_repository, opt, prefix); repo_init_revisions(the_repository, opt, prefix);
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
opt->abbrev = 0; opt->abbrev = 0;
opt->diff = 1; opt->diff = 1;

View File

@ -3,7 +3,7 @@
* *
* Copyright (c) 2006 Junio C Hamano * Copyright (c) 2006 Junio C Hamano
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "ewah/ewok.h" #include "ewah/ewok.h"
@ -157,12 +157,13 @@ static int builtin_diff_index(struct rev_info *revs,
usage(builtin_diff_usage); usage(builtin_diff_usage);
if (!(option & DIFF_INDEX_CACHED)) { if (!(option & DIFF_INDEX_CACHED)) {
setup_work_tree(); setup_work_tree();
if (read_cache_preload(&revs->diffopt.pathspec) < 0) { if (repo_read_index_preload(the_repository,
perror("read_cache_preload"); &revs->diffopt.pathspec, 0) < 0) {
perror("repo_read_index_preload");
return -1; return -1;
} }
} else if (read_cache() < 0) { } else if (repo_read_index(the_repository) < 0) {
perror("read_cache"); perror("repo_read_cache");
return -1; return -1;
} }
return run_diff_index(revs, option); return run_diff_index(revs, option);
@ -239,12 +240,13 @@ static void refresh_index_quietly(void)
struct lock_file lock_file = LOCK_INIT; struct lock_file lock_file = LOCK_INIT;
int fd; int fd;
fd = hold_locked_index(&lock_file, 0); fd = repo_hold_locked_index(the_repository, &lock_file, 0);
if (fd < 0) if (fd < 0)
return; return;
discard_cache(); discard_index(&the_index);
read_cache(); repo_read_index(the_repository);
refresh_cache(REFRESH_QUIET|REFRESH_UNMERGED); refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, NULL, NULL,
NULL);
repo_update_index_if_able(the_repository, &lock_file); repo_update_index_if_able(the_repository, &lock_file);
} }
@ -279,8 +281,9 @@ static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv
diff_merges_set_dense_combined_if_unset(revs); diff_merges_set_dense_combined_if_unset(revs);
setup_work_tree(); setup_work_tree();
if (read_cache_preload(&revs->diffopt.pathspec) < 0) { if (repo_read_index_preload(the_repository, &revs->diffopt.pathspec,
perror("read_cache_preload"); 0) < 0) {
perror("repo_read_index_preload");
return -1; return -1;
} }
return run_diff_files(revs, options); return run_diff_files(revs, options);

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "cache.h" #include "cache.h"
#include "repository.h" #include "repository.h"
@ -958,7 +958,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; verify_ce_order = 1;
read_cache(); repo_read_index(the_repository);
/* TODO: audit for interaction with sparse-index. */ /* TODO: audit for interaction with sparse-index. */
ensure_full_index(&the_index); ensure_full_index(&the_index);
for (i = 0; i < the_index.cache_nr; i++) { for (i = 0; i < the_index.cache_nr; i++) {

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "run-command.h" #include "run-command.h"
@ -47,7 +47,7 @@ static int merge_entry(int pos, const char *path)
static void merge_one_path(const char *path) static void merge_one_path(const char *path)
{ {
int pos = cache_name_pos(path, strlen(path)); int pos = index_name_pos(&the_index, path, strlen(path));
/* /*
* If it already exists in the cache as stage0, it's * If it already exists in the cache as stage0, it's
@ -82,7 +82,7 @@ int cmd_merge_index(int argc, const char **argv, const char *prefix)
if (argc < 3) if (argc < 3)
usage("git merge-index [-o] [-q] <merge-program> (-a | [--] [<filename>...])"); usage("git merge-index [-o] [-q] <merge-program> (-a | [--] [<filename>...])");
read_cache(); repo_read_index(the_repository);
/* TODO: audit for interaction with sparse-index. */ /* TODO: audit for interaction with sparse-index. */
ensure_full_index(&the_index); ensure_full_index(&the_index);

View File

@ -7,7 +7,6 @@
* *
* Pretend we resolved the heads, but declare our tree trumps everybody else. * Pretend we resolved the heads, but declare our tree trumps everybody else.
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS
#include "git-compat-util.h" #include "git-compat-util.h"
#include "builtin.h" #include "builtin.h"
#include "diff.h" #include "diff.h"
@ -25,7 +24,7 @@ int cmd_merge_ours(int argc, const char **argv, const char *prefix)
* commit. The index must match HEAD, or this merge cannot go * commit. The index must match HEAD, or this merge cannot go
* through. * through.
*/ */
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die_errno("read_cache failed"); die_errno("read_cache failed");
if (index_differs_from(the_repository, "HEAD", NULL, 0)) if (index_differs_from(the_repository, "HEAD", NULL, 0))
return 2; return 2;

View File

@ -318,7 +318,7 @@ static int save_state(struct object_id *stash)
int rc = -1; int rc = -1;
fd = repo_hold_locked_index(the_repository, &lock_file, 0); fd = repo_hold_locked_index(the_repository, &lock_file, 0);
refresh_cache(REFRESH_QUIET); refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
if (0 <= fd) if (0 <= fd)
repo_update_index_if_able(the_repository, &lock_file); repo_update_index_if_able(the_repository, &lock_file);
rollback_lock_file(&lock_file); rollback_lock_file(&lock_file);
@ -716,7 +716,9 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
{ {
const char *head_arg = "HEAD"; const char *head_arg = "HEAD";
if (refresh_and_write_cache(REFRESH_QUIET, SKIP_IF_UNCHANGED, 0) < 0) if (repo_refresh_and_write_index(the_repository, REFRESH_QUIET,
SKIP_IF_UNCHANGED, 0, NULL, NULL,
NULL) < 0)
return error(_("Unable to write index.")); return error(_("Unable to write index."));
if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree") || if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree") ||
@ -750,7 +752,8 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
for (j = common; j; j = j->next) for (j = common; j; j = j->next)
commit_list_insert(j->item, &reversed); commit_list_insert(j->item, &reversed);
hold_locked_index(&lock, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock,
LOCK_DIE_ON_ERROR);
if (!strcmp(strategy, "ort")) if (!strcmp(strategy, "ort"))
clean = merge_ort_recursive(&o, head, remoteheads->item, clean = merge_ort_recursive(&o, head, remoteheads->item,
reversed, &result); reversed, &result);
@ -859,9 +862,9 @@ static void prepare_to_commit(struct commit_list *remoteheads)
* the editor and after we invoke run_status above. * the editor and after we invoke run_status above.
*/ */
if (invoked_hook) if (invoked_hook)
discard_cache(); discard_index(&the_index);
} }
read_cache_from(index_file); read_index_from(&the_index, index_file, get_git_dir());
strbuf_addbuf(&msg, &merge_msg); strbuf_addbuf(&msg, &merge_msg);
if (squash) if (squash)
BUG("the control must not reach here under --squash"); BUG("the control must not reach here under --squash");
@ -910,7 +913,9 @@ static int merge_trivial(struct commit *head, struct commit_list *remoteheads)
struct object_id result_tree, result_commit; struct object_id result_tree, result_commit;
struct commit_list *parents, **pptr = &parents; struct commit_list *parents, **pptr = &parents;
if (refresh_and_write_cache(REFRESH_QUIET, SKIP_IF_UNCHANGED, 0) < 0) if (repo_refresh_and_write_index(the_repository, REFRESH_QUIET,
SKIP_IF_UNCHANGED, 0, NULL, NULL,
NULL) < 0)
return error(_("Unable to write index.")); return error(_("Unable to write index."));
write_tree_trivial(&result_tree); write_tree_trivial(&result_tree);
@ -1602,7 +1607,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
* We are not doing octopus, not fast-forward, and have * We are not doing octopus, not fast-forward, and have
* only one common. * only one common.
*/ */
refresh_cache(REFRESH_QUIET); refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
if (allow_trivial && fast_forward != FF_ONLY) { if (allow_trivial && fast_forward != FF_ONLY) {
/* /*
* Must first ensure that index matches HEAD before * Must first ensure that index matches HEAD before

View File

@ -106,7 +106,7 @@ static int index_range_of_same_dir(const char *src, int length,
const char *src_w_slash = add_slash(src); const char *src_w_slash = add_slash(src);
int first, last, len_w_slash = length + 1; int first, last, len_w_slash = length + 1;
first = cache_name_pos(src_w_slash, len_w_slash); first = index_name_pos(&the_index, src_w_slash, len_w_slash);
if (first >= 0) if (first >= 0)
die(_("%.*s is in index"), len_w_slash, src_w_slash); die(_("%.*s is in index"), len_w_slash, src_w_slash);
@ -136,7 +136,7 @@ static int empty_dir_has_sparse_contents(const char *name)
const char *with_slash = add_slash(name); const char *with_slash = add_slash(name);
int length = strlen(with_slash); int length = strlen(with_slash);
int pos = cache_name_pos(with_slash, length); int pos = index_name_pos(&the_index, with_slash, length);
const struct cache_entry *ce; const struct cache_entry *ce;
if (pos < 0) { if (pos < 0) {
@ -189,8 +189,8 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
if (--argc < 1) if (--argc < 1)
usage_with_options(builtin_mv_usage, builtin_mv_options); usage_with_options(builtin_mv_usage, builtin_mv_options);
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
source = internal_prefix_pathspec(prefix, argv, argc, 0); source = internal_prefix_pathspec(prefix, argv, argc, 0);
@ -255,7 +255,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
int pos; int pos;
const struct cache_entry *ce; const struct cache_entry *ce;
pos = cache_name_pos(src, length); pos = index_name_pos(&the_index, src, length);
if (pos < 0) { if (pos < 0) {
const char *src_w_slash = add_slash(src); const char *src_w_slash = add_slash(src);
if (!path_in_sparse_checkout(src_w_slash, &the_index) && if (!path_in_sparse_checkout(src_w_slash, &the_index) &&
@ -278,7 +278,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
goto act_on_entry; goto act_on_entry;
} }
/* Check if dst exists in index */ /* Check if dst exists in index */
if (cache_name_pos(dst, strlen(dst)) < 0) { if (index_name_pos(&the_index, dst, strlen(dst)) < 0) {
modes[i] |= SPARSE; modes[i] |= SPARSE;
goto act_on_entry; goto act_on_entry;
} }
@ -303,7 +303,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
dir_check: dir_check:
if (S_ISDIR(st.st_mode)) { if (S_ISDIR(st.st_mode)) {
int j, dst_len, n; int j, dst_len, n;
int first = cache_name_pos(src, length), last; int first = index_name_pos(&the_index, src, length), last;
if (first >= 0) { if (first >= 0) {
prepare_move_submodule(src, first, prepare_move_submodule(src, first,
@ -468,7 +468,7 @@ remove_entry:
if (mode & (WORKING_DIRECTORY | SKIP_WORKTREE_DIR)) if (mode & (WORKING_DIRECTORY | SKIP_WORKTREE_DIR))
continue; continue;
pos = cache_name_pos(src, strlen(src)); pos = index_name_pos(&the_index, src, strlen(src));
assert(pos >= 0); assert(pos >= 0);
if (!(mode & SPARSE) && !lstat(src, &st)) if (!(mode & SPARSE) && !lstat(src, &st))
sparse_and_dirty = ie_modified(&the_index, sparse_and_dirty = ie_modified(&the_index,

View File

@ -4,7 +4,7 @@
* Copyright (C) Linus Torvalds, 2005 * Copyright (C) Linus Torvalds, 2005
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "lockfile.h" #include "lockfile.h"
@ -176,7 +176,7 @@ int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix)
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
/* /*
* NEEDSWORK * NEEDSWORK

View File

@ -4,7 +4,7 @@
* Copyright (c) 2018 Pratik Karki * Copyright (c) 2018 Pratik Karki
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "run-command.h" #include "run-command.h"
#include "exec-cmd.h" #include "exec-cmd.h"
@ -292,7 +292,7 @@ static int do_interactive_rebase(struct rebase_options *opts, unsigned flags)
if (ret) if (ret)
error(_("could not generate todo list")); error(_("could not generate todo list"));
else { else {
discard_cache(); discard_index(&the_index);
if (todo_list_parse_insn_buffer(the_repository, todo_list.buf.buf, if (todo_list_parse_insn_buffer(the_repository, todo_list.buf.buf,
&todo_list)) &todo_list))
BUG("unusable todo list"); BUG("unusable todo list");
@ -1268,7 +1268,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
if (get_oid("HEAD", &head)) if (get_oid("HEAD", &head))
die(_("Cannot read HEAD")); die(_("Cannot read HEAD"));
fd = hold_locked_index(&lock_file, 0); fd = repo_hold_locked_index(the_repository, &lock_file, 0);
if (repo_read_index(the_repository) < 0) if (repo_read_index(the_repository) < 0)
die(_("could not read index")); die(_("could not read index"));
refresh_index(the_repository->index, REFRESH_QUIET, NULL, NULL, refresh_index(the_repository->index, REFRESH_QUIET, NULL, NULL,

View File

@ -7,7 +7,7 @@
* *
* Copyright (c) 2005, 2006 Linus Torvalds and Junio C Hamano * Copyright (c) 2005, 2006 Linus Torvalds and Junio C Hamano
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "config.h" #include "config.h"
#include "lockfile.h" #include "lockfile.h"
@ -160,7 +160,7 @@ static void update_index_from_diff(struct diff_queue_struct *q,
* if this entry is outside the sparse cone - this is necessary * if this entry is outside the sparse cone - this is necessary
* to properly construct the reset sparse directory. * to properly construct the reset sparse directory.
*/ */
pos = cache_name_pos(one->path, strlen(one->path)); pos = index_name_pos(&the_index, one->path, strlen(one->path));
if ((pos >= 0 && ce_skip_worktree(the_index.cache[pos])) || if ((pos >= 0 && ce_skip_worktree(the_index.cache[pos])) ||
(pos < 0 && !path_in_sparse_checkout(one->path, &the_index))) (pos < 0 && !path_in_sparse_checkout(one->path, &the_index)))
ce->ce_flags |= CE_SKIP_WORKTREE; ce->ce_flags |= CE_SKIP_WORKTREE;
@ -423,7 +423,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
/* Soft reset does not touch the index file nor the working tree /* Soft reset does not touch the index file nor the working tree
@ -434,7 +434,8 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
if (reset_type != SOFT) { if (reset_type != SOFT) {
struct lock_file lock = LOCK_INIT; struct lock_file lock = LOCK_INIT;
hold_locked_index(&lock, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock,
LOCK_DIE_ON_ERROR);
if (reset_type == MIXED) { if (reset_type == MIXED) {
int flags = quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN; int flags = quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN;
if (read_from_tree(&pathspec, &oid, intent_to_add)) if (read_from_tree(&pathspec, &oid, intent_to_add))

View File

@ -3,7 +3,7 @@
* *
* Copyright (C) Linus Torvalds, 2005 * Copyright (C) Linus Torvalds, 2005
*/ */
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "cache.h" #include "cache.h"
#include "config.h" #include "config.h"
#include "commit.h" #include "commit.h"
@ -997,7 +997,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
continue; continue;
} }
if (!strcmp(arg, "--shared-index-path")) { if (!strcmp(arg, "--shared-index-path")) {
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("Could not read the index")); die(_("Could not read the index"));
if (the_index.split_index) { if (the_index.split_index) {
const struct object_id *oid = &the_index.split_index->base_oid; const struct object_id *oid = &the_index.split_index->base_oid;

View File

@ -72,7 +72,7 @@ static void submodules_absorb_gitdir_if_needed(void)
int pos; int pos;
const struct cache_entry *ce; const struct cache_entry *ce;
pos = cache_name_pos(name, strlen(name)); pos = index_name_pos(&the_index, name, strlen(name));
if (pos < 0) { if (pos < 0) {
pos = get_ours_cache_pos(name, pos); pos = get_ours_cache_pos(name, pos);
if (pos < 0) if (pos < 0)
@ -117,7 +117,7 @@ static int check_local_mod(struct object_id *head, int index_only)
int local_changes = 0; int local_changes = 0;
int staged_changes = 0; int staged_changes = 0;
pos = cache_name_pos(name, strlen(name)); pos = index_name_pos(&the_index, name, strlen(name));
if (pos < 0) { if (pos < 0) {
/* /*
* Skip unmerged entries except for populated submodules * Skip unmerged entries except for populated submodules
@ -291,9 +291,9 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, &pathspec, NULL, NULL); refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, &pathspec, NULL, NULL);

View File

@ -261,11 +261,11 @@ static int reset_tree(struct object_id *i_tree, int update, int reset)
struct tree *tree; struct tree *tree;
struct lock_file lock_file = LOCK_INIT; struct lock_file lock_file = LOCK_INIT;
read_cache_preload(NULL); repo_read_index_preload(the_repository, NULL, 0);
if (refresh_cache(REFRESH_QUIET)) if (refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL))
return -1; return -1;
hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR); repo_hold_locked_index(the_repository, &lock_file, LOCK_DIE_ON_ERROR);
memset(&opts, 0, sizeof(opts)); memset(&opts, 0, sizeof(opts));
@ -523,8 +523,9 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
struct tree *head, *merge, *merge_base; struct tree *head, *merge, *merge_base;
struct lock_file lock = LOCK_INIT; struct lock_file lock = LOCK_INIT;
read_cache_preload(NULL); repo_read_index_preload(the_repository, NULL, 0);
if (refresh_and_write_cache(REFRESH_QUIET, 0, 0)) if (repo_refresh_and_write_index(the_repository, REFRESH_QUIET, 0, 0,
NULL, NULL, NULL))
return -1; return -1;
if (write_cache_as_tree(&c_tree, 0, NULL)) if (write_cache_as_tree(&c_tree, 0, NULL))
@ -549,14 +550,14 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
return error(_("conflicts in index. " return error(_("conflicts in index. "
"Try without --index.")); "Try without --index."));
discard_cache(); discard_index(&the_index);
read_cache(); repo_read_index(the_repository);
if (write_cache_as_tree(&index_tree, 0, NULL)) if (write_cache_as_tree(&index_tree, 0, NULL))
return error(_("could not save index tree")); return error(_("could not save index tree"));
reset_head(); reset_head();
discard_cache(); discard_index(&the_index);
read_cache(); repo_read_index(the_repository);
} }
} }
@ -1082,7 +1083,7 @@ static int check_changes_tracked_files(const struct pathspec *ps)
if (get_oid("HEAD", &dummy)) if (get_oid("HEAD", &dummy))
return -1; return -1;
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
return -1; return -1;
init_revisions(&rev, NULL); init_revisions(&rev, NULL);
@ -1286,7 +1287,7 @@ static int stash_working_tree(struct stash_info *info, const struct pathspec *ps
rev.diffopt.format_callback = add_diff_to_buf; rev.diffopt.format_callback = add_diff_to_buf;
rev.diffopt.format_callback_data = &diff_output; rev.diffopt.format_callback_data = &diff_output;
if (read_cache_preload(&rev.diffopt.pathspec) < 0) { if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0) {
ret = -1; ret = -1;
goto done; goto done;
} }
@ -1344,8 +1345,9 @@ static int do_create_stash(const struct pathspec *ps, struct strbuf *stash_msg_b
prepare_fallback_ident("git stash", "git@stash"); prepare_fallback_ident("git stash", "git@stash");
read_cache_preload(NULL); repo_read_index_preload(the_repository, NULL, 0);
if (refresh_and_write_cache(REFRESH_QUIET, 0, 0) < 0) { if (repo_refresh_and_write_index(the_repository, REFRESH_QUIET, 0, 0,
NULL, NULL, NULL) < 0) {
ret = -1; ret = -1;
goto done; goto done;
} }
@ -1513,7 +1515,7 @@ static int do_push_stash(const struct pathspec *ps, const char *stash_msg, int q
goto done; goto done;
} }
read_cache_preload(NULL); repo_read_index_preload(the_repository, NULL, 0);
if (!include_untracked && ps->nr) { if (!include_untracked && ps->nr) {
int i; int i;
char *ps_matched = xcalloc(ps->nr, 1); char *ps_matched = xcalloc(ps->nr, 1);
@ -1533,7 +1535,8 @@ static int do_push_stash(const struct pathspec *ps, const char *stash_msg, int q
free(ps_matched); free(ps_matched);
} }
if (refresh_and_write_cache(REFRESH_QUIET, 0, 0)) { if (repo_refresh_and_write_index(the_repository, REFRESH_QUIET, 0, 0,
NULL, NULL, NULL)) {
ret = -1; ret = -1;
goto done; goto done;
} }
@ -1590,7 +1593,7 @@ static int do_push_stash(const struct pathspec *ps, const char *stash_msg, int q
goto done; goto done;
} }
} }
discard_cache(); discard_index(&the_index);
if (ps->nr) { if (ps->nr) {
struct child_process cp_add = CHILD_PROCESS_INIT; struct child_process cp_add = CHILD_PROCESS_INIT;
struct child_process cp_diff = CHILD_PROCESS_INIT; struct child_process cp_diff = CHILD_PROCESS_INIT;

View File

@ -1,4 +1,4 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS #define USE_THE_INDEX_VARIABLE
#include "builtin.h" #include "builtin.h"
#include "repository.h" #include "repository.h"
#include "cache.h" #include "cache.h"
@ -196,7 +196,7 @@ static int module_list_compute(const char **argv,
if (pathspec->nr) if (pathspec->nr)
ps_matched = xcalloc(pathspec->nr, 1); ps_matched = xcalloc(pathspec->nr, 1);
if (read_cache() < 0) if (repo_read_index(the_repository) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
for (i = 0; i < the_index.cache_nr; i++) { for (i = 0; i < the_index.cache_nr; i++) {
@ -1109,13 +1109,13 @@ static int compute_summary_module_list(struct object_id *head_oid,
if (!info->cached) { if (!info->cached) {
if (diff_cmd == DIFF_INDEX) if (diff_cmd == DIFF_INDEX)
setup_work_tree(); setup_work_tree();
if (read_cache_preload(&rev.diffopt.pathspec) < 0) { if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0) {
perror("read_cache_preload"); perror("repo_read_index_preload");
ret = -1; ret = -1;
goto cleanup; goto cleanup;
} }
} else if (read_cache() < 0) { } else if (repo_read_index(the_repository) < 0) {
perror("read_cache"); perror("repo_read_cache");
ret = -1; ret = -1;
goto cleanup; goto cleanup;
} }
@ -3240,7 +3240,7 @@ static void die_on_index_match(const char *path, int force)
const char *args[] = { path, NULL }; const char *args[] = { path, NULL };
parse_pathspec(&ps, 0, PATHSPEC_PREFER_CWD, NULL, args); parse_pathspec(&ps, 0, PATHSPEC_PREFER_CWD, NULL, args);
if (read_cache_preload(NULL) < 0) if (repo_read_index_preload(the_repository, NULL, 0) < 0)
die(_("index file corrupt")); die(_("index file corrupt"));
if (ps.nr) { if (ps.nr) {

View File

@ -237,7 +237,7 @@ done:
static int mark_ce_flags(const char *path, int flag, int mark) static int mark_ce_flags(const char *path, int flag, int mark)
{ {
int namelen = strlen(path); int namelen = strlen(path);
int pos = cache_name_pos(path, namelen); int pos = index_name_pos(&the_index, path, namelen);
if (0 <= pos) { if (0 <= pos) {
mark_fsmonitor_invalid(&the_index, the_index.cache[pos]); mark_fsmonitor_invalid(&the_index, the_index.cache[pos]);
if (mark) if (mark)
@ -331,7 +331,7 @@ static int add_one_path(const struct cache_entry *old, const char *path, int len
static int process_directory(const char *path, int len, struct stat *st) static int process_directory(const char *path, int len, struct stat *st)
{ {
struct object_id oid; struct object_id oid;
int pos = cache_name_pos(path, len); int pos = index_name_pos(&the_index, path, len);
/* Exact match: file or existing gitlink */ /* Exact match: file or existing gitlink */
if (pos >= 0) { if (pos >= 0) {
@ -441,7 +441,7 @@ static void chmod_path(char flip, const char *path)
int pos; int pos;
struct cache_entry *ce; struct cache_entry *ce;
pos = cache_name_pos(path, strlen(path)); pos = index_name_pos(&the_index, path, strlen(path));
if (pos < 0) if (pos < 0)
goto fail; goto fail;
ce = the_index.cache[pos]; ce = the_index.cache[pos];
@ -638,7 +638,7 @@ static int unresolve_one(const char *path)
struct cache_entry *ce_2 = NULL, *ce_3 = NULL; struct cache_entry *ce_2 = NULL, *ce_3 = NULL;
/* See if there is such entry in the index. */ /* See if there is such entry in the index. */
pos = cache_name_pos(path, namelen); pos = index_name_pos(&the_index, path, namelen);
if (0 <= pos) { if (0 <= pos) {
/* already merged */ /* already merged */
pos = unmerge_index_entry_at(&the_index, pos); pos = unmerge_index_entry_at(&the_index, pos);
@ -802,15 +802,16 @@ struct refresh_params {
static int refresh(struct refresh_params *o, unsigned int flag) static int refresh(struct refresh_params *o, unsigned int flag)
{ {
setup_work_tree(); setup_work_tree();
read_cache(); repo_read_index(the_repository);
*o->has_errors |= refresh_cache(o->flags | flag); *o->has_errors |= refresh_index(&the_index, o->flags | flag, NULL,
NULL, NULL);
if (has_racy_timestamp(&the_index)) { if (has_racy_timestamp(&the_index)) {
/* /*
* Even if nothing else has changed, updating the file * Even if nothing else has changed, updating the file
* increases the chance that racy timestamps become * increases the chance that racy timestamps become
* non-racy, helping future run-time performance. * non-racy, helping future run-time performance.
* We do that even in case of "errors" returned by * We do that even in case of "errors" returned by
* refresh_cache() as these are no actual errors. * refresh_index() as these are no actual errors.
* cmd_status() does the same. * cmd_status() does the same.
*/ */
the_index.cache_changed |= SOMETHING_CHANGED; the_index.cache_changed |= SOMETHING_CHANGED;
@ -1109,11 +1110,11 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
the_repository->settings.command_requires_full_index = 0; the_repository->settings.command_requires_full_index = 0;
/* we will diagnose later if it turns out that we need to update it */ /* we will diagnose later if it turns out that we need to update it */
newfd = hold_locked_index(&lock_file, 0); newfd = repo_hold_locked_index(the_repository, &lock_file, 0);
if (newfd < 0) if (newfd < 0)
lock_error = errno; lock_error = errno;
entries = read_cache(); entries = repo_read_index(the_repository);
if (entries < 0) if (entries < 0)
die("cache corrupted"); die("cache corrupted");

View File

@ -441,13 +441,8 @@ extern struct index_state the_index;
#define active_nr (the_index.cache_nr) #define active_nr (the_index.cache_nr)
#define read_cache() repo_read_index(the_repository) #define read_cache() repo_read_index(the_repository)
#define read_cache_from(path) read_index_from(&the_index, (path), (get_git_dir()))
#define read_cache_preload(pathspec) repo_read_index_preload(the_repository, (pathspec), 0)
#define discard_cache() discard_index(&the_index) #define discard_cache() discard_index(&the_index)
#define cache_name_pos(name, namelen) index_name_pos(&the_index,(name),(namelen)) #define cache_name_pos(name, namelen) index_name_pos(&the_index,(name),(namelen))
#define refresh_cache(flags) refresh_index(&the_index, (flags), NULL, NULL, NULL)
#define refresh_and_write_cache(refresh_flags, write_flags, gentle) repo_refresh_and_write_index(the_repository, (refresh_flags), (write_flags), (gentle), NULL, NULL, NULL)
#define hold_locked_index(lock_file, flags) repo_hold_locked_index(the_repository, (lock_file), (flags))
#endif #endif
#endif #endif
#endif #endif

View File

@ -26,11 +26,27 @@ identifier f != prepare_to_commit;
( (
- read_cache_unmerged - read_cache_unmerged
+ repo_read_index_unmerged + repo_read_index_unmerged
|
- hold_locked_index
+ repo_hold_locked_index
) )
( (
+ the_repository, + the_repository,
...) ...)
// "the_repository" special-cases
@@
@@
(
- read_cache_preload
+ repo_read_index_preload
)
(
+ the_repository,
...
+ , 0
)
// "the_index" simple cases // "the_index" simple cases
@@ @@
@@ @@
@ -80,3 +96,40 @@ identifier f != prepare_to_commit;
( (
+ &the_index, + &the_index,
...) ...)
@@
@@
(
- refresh_and_write_cache
+ repo_refresh_and_write_index
)
(
+ the_repository,
...
+ , NULL, NULL, NULL
)
// "the_index" special-cases
@@
@@
(
- read_cache_from
+ read_index_from
)
(
+ &the_index,
...
+ , get_git_dir()
)
@@
@@
(
- refresh_cache
+ refresh_index
)
(
+ &the_index,
...
+ , NULL, NULL, NULL
)

View File

@ -4,9 +4,6 @@
( (
- read_cache - read_cache
+ repo_read_index + repo_read_index
|
- hold_locked_index
+ repo_hold_locked_index
) )
( (
+ the_repository, + the_repository,
@ -25,54 +22,3 @@
( (
+ &the_index, + &the_index,
...) ...)
// "the_repository" special-cases
@@
@@
(
- read_cache_preload
+ repo_read_index_preload
)
(
+ the_repository,
...
+ , 0
)
@@
@@
(
- refresh_and_write_cache
+ repo_refresh_and_write_index
)
(
+ the_repository,
...
+ , NULL, NULL, NULL
)
// "the_index" special-cases
@@
@@
(
- read_cache_from
+ read_index_from
)
(
+ &the_index,
...
+ , get_git_dir()
)
@@
@@
(
- refresh_cache
+ refresh_index
)
(
+ &the_index,
...
+ , NULL, NULL, NULL
)