builtin: stop using the_index
Convert builtins to use `the_repository->index` instead of `the_index`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
319ba14407
commit
f59aa5e0a9
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (C) Linus Torvalds, 2005
|
||||
*/
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
|
||||
#include "builtin.h"
|
||||
#include "bulk-checkin.h"
|
||||
#include "config.h"
|
||||
@@ -247,16 +247,16 @@ done:
|
||||
static int mark_ce_flags(const char *path, int flag, int mark)
|
||||
{
|
||||
int namelen = strlen(path);
|
||||
int pos = index_name_pos(&the_index, path, namelen);
|
||||
int pos = index_name_pos(the_repository->index, path, namelen);
|
||||
if (0 <= pos) {
|
||||
mark_fsmonitor_invalid(&the_index, the_index.cache[pos]);
|
||||
mark_fsmonitor_invalid(the_repository->index, the_repository->index->cache[pos]);
|
||||
if (mark)
|
||||
the_index.cache[pos]->ce_flags |= flag;
|
||||
the_repository->index->cache[pos]->ce_flags |= flag;
|
||||
else
|
||||
the_index.cache[pos]->ce_flags &= ~flag;
|
||||
the_index.cache[pos]->ce_flags |= CE_UPDATE_IN_BASE;
|
||||
cache_tree_invalidate_path(&the_index, path);
|
||||
the_index.cache_changed |= CE_ENTRY_CHANGED;
|
||||
the_repository->index->cache[pos]->ce_flags &= ~flag;
|
||||
the_repository->index->cache[pos]->ce_flags |= CE_UPDATE_IN_BASE;
|
||||
cache_tree_invalidate_path(the_repository->index, path);
|
||||
the_repository->index->cache_changed |= CE_ENTRY_CHANGED;
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
@@ -266,7 +266,7 @@ static int remove_one_path(const char *path)
|
||||
{
|
||||
if (!allow_remove)
|
||||
return error("%s: does not exist and --remove not passed", path);
|
||||
if (remove_file_from_index(&the_index, path))
|
||||
if (remove_file_from_index(the_repository->index, path))
|
||||
return error("%s: cannot remove from the index", path);
|
||||
return 0;
|
||||
}
|
||||
@@ -291,24 +291,24 @@ static int add_one_path(const struct cache_entry *old, const char *path, int len
|
||||
struct cache_entry *ce;
|
||||
|
||||
/* Was the old index entry already up-to-date? */
|
||||
if (old && !ce_stage(old) && !ie_match_stat(&the_index, old, st, 0))
|
||||
if (old && !ce_stage(old) && !ie_match_stat(the_repository->index, old, st, 0))
|
||||
return 0;
|
||||
|
||||
ce = make_empty_cache_entry(&the_index, len);
|
||||
ce = make_empty_cache_entry(the_repository->index, len);
|
||||
memcpy(ce->name, path, len);
|
||||
ce->ce_flags = create_ce_flags(0);
|
||||
ce->ce_namelen = len;
|
||||
fill_stat_cache_info(&the_index, ce, st);
|
||||
fill_stat_cache_info(the_repository->index, ce, st);
|
||||
ce->ce_mode = ce_mode_from_stat(old, st->st_mode);
|
||||
|
||||
if (index_path(&the_index, &ce->oid, path, st,
|
||||
if (index_path(the_repository->index, &ce->oid, path, st,
|
||||
info_only ? 0 : HASH_WRITE_OBJECT)) {
|
||||
discard_cache_entry(ce);
|
||||
return -1;
|
||||
}
|
||||
option = allow_add ? ADD_CACHE_OK_TO_ADD : 0;
|
||||
option |= allow_replace ? ADD_CACHE_OK_TO_REPLACE : 0;
|
||||
if (add_index_entry(&the_index, ce, option)) {
|
||||
if (add_index_entry(the_repository->index, ce, option)) {
|
||||
discard_cache_entry(ce);
|
||||
return error("%s: cannot add to the index - missing --add option?", path);
|
||||
}
|
||||
@@ -341,11 +341,11 @@ 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)
|
||||
{
|
||||
struct object_id oid;
|
||||
int pos = index_name_pos(&the_index, path, len);
|
||||
int pos = index_name_pos(the_repository->index, path, len);
|
||||
|
||||
/* Exact match: file or existing gitlink */
|
||||
if (pos >= 0) {
|
||||
const struct cache_entry *ce = the_index.cache[pos];
|
||||
const struct cache_entry *ce = the_repository->index->cache[pos];
|
||||
if (S_ISGITLINK(ce->ce_mode)) {
|
||||
|
||||
/* Do nothing to the index if there is no HEAD! */
|
||||
@@ -360,8 +360,8 @@ static int process_directory(const char *path, int len, struct stat *st)
|
||||
|
||||
/* Inexact match: is there perhaps a subdirectory match? */
|
||||
pos = -pos-1;
|
||||
while (pos < the_index.cache_nr) {
|
||||
const struct cache_entry *ce = the_index.cache[pos++];
|
||||
while (pos < the_repository->index->cache_nr) {
|
||||
const struct cache_entry *ce = the_repository->index->cache[pos++];
|
||||
|
||||
if (strncmp(ce->name, path, len))
|
||||
break;
|
||||
@@ -391,8 +391,8 @@ static int process_path(const char *path, struct stat *st, int stat_errno)
|
||||
if (has_symlink_leading_path(path, len))
|
||||
return error("'%s' is beyond a symbolic link", path);
|
||||
|
||||
pos = index_name_pos(&the_index, path, len);
|
||||
ce = pos < 0 ? NULL : the_index.cache[pos];
|
||||
pos = index_name_pos(the_repository->index, path, len);
|
||||
ce = pos < 0 ? NULL : the_repository->index->cache[pos];
|
||||
if (ce && ce_skip_worktree(ce)) {
|
||||
/*
|
||||
* working directory version is assumed "good"
|
||||
@@ -400,7 +400,7 @@ static int process_path(const char *path, struct stat *st, int stat_errno)
|
||||
* On the other hand, removing it from index should work
|
||||
*/
|
||||
if (!ignore_skip_worktree_entries && allow_remove &&
|
||||
remove_file_from_index(&the_index, path))
|
||||
remove_file_from_index(the_repository->index, path))
|
||||
return error("%s: cannot remove from the index", path);
|
||||
return 0;
|
||||
}
|
||||
@@ -428,7 +428,7 @@ static int add_cacheinfo(unsigned int mode, const struct object_id *oid,
|
||||
return error("Invalid path '%s'", path);
|
||||
|
||||
len = strlen(path);
|
||||
ce = make_empty_cache_entry(&the_index, len);
|
||||
ce = make_empty_cache_entry(the_repository->index, len);
|
||||
|
||||
oidcpy(&ce->oid, oid);
|
||||
memcpy(ce->name, path, len);
|
||||
@@ -439,7 +439,7 @@ static int add_cacheinfo(unsigned int mode, const struct object_id *oid,
|
||||
ce->ce_flags |= CE_VALID;
|
||||
option = allow_add ? ADD_CACHE_OK_TO_ADD : 0;
|
||||
option |= allow_replace ? ADD_CACHE_OK_TO_REPLACE : 0;
|
||||
if (add_index_entry(&the_index, ce, option))
|
||||
if (add_index_entry(the_repository->index, ce, option))
|
||||
return error("%s: cannot add to the index - missing --add option?",
|
||||
path);
|
||||
report("add '%s'", path);
|
||||
@@ -451,11 +451,11 @@ static void chmod_path(char flip, const char *path)
|
||||
int pos;
|
||||
struct cache_entry *ce;
|
||||
|
||||
pos = index_name_pos(&the_index, path, strlen(path));
|
||||
pos = index_name_pos(the_repository->index, path, strlen(path));
|
||||
if (pos < 0)
|
||||
goto fail;
|
||||
ce = the_index.cache[pos];
|
||||
if (chmod_index_entry(&the_index, ce, flip) < 0)
|
||||
ce = the_repository->index->cache[pos];
|
||||
if (chmod_index_entry(the_repository->index, ce, flip) < 0)
|
||||
goto fail;
|
||||
|
||||
report("chmod %cx '%s'", flip, path);
|
||||
@@ -498,7 +498,7 @@ static void update_one(const char *path)
|
||||
}
|
||||
|
||||
if (force_remove) {
|
||||
if (remove_file_from_index(&the_index, path))
|
||||
if (remove_file_from_index(the_repository->index, path))
|
||||
die("git update-index: unable to remove %s", path);
|
||||
report("remove '%s'", path);
|
||||
return;
|
||||
@@ -581,7 +581,7 @@ static void read_index_info(int nul_term_line)
|
||||
|
||||
if (!mode) {
|
||||
/* mode == 0 means there is no such path -- remove */
|
||||
if (remove_file_from_index(&the_index, path_name))
|
||||
if (remove_file_from_index(the_repository->index, path_name))
|
||||
die("git update-index: unable to remove %s",
|
||||
ptr);
|
||||
}
|
||||
@@ -622,12 +622,12 @@ static struct cache_entry *read_one_ent(const char *which,
|
||||
error("%s: not in %s branch.", path, which);
|
||||
return NULL;
|
||||
}
|
||||
if (!the_index.sparse_index && mode == S_IFDIR) {
|
||||
if (!the_repository->index->sparse_index && mode == S_IFDIR) {
|
||||
if (which)
|
||||
error("%s: not a blob in %s branch.", path, which);
|
||||
return NULL;
|
||||
}
|
||||
ce = make_empty_cache_entry(&the_index, namelen);
|
||||
ce = make_empty_cache_entry(the_repository->index, namelen);
|
||||
|
||||
oidcpy(&ce->oid, &oid);
|
||||
memcpy(ce->name, path, namelen);
|
||||
@@ -642,12 +642,12 @@ static int unresolve_one(const char *path)
|
||||
struct string_list_item *item;
|
||||
int res = 0;
|
||||
|
||||
if (!the_index.resolve_undo)
|
||||
if (!the_repository->index->resolve_undo)
|
||||
return res;
|
||||
item = string_list_lookup(the_index.resolve_undo, path);
|
||||
item = string_list_lookup(the_repository->index->resolve_undo, path);
|
||||
if (!item)
|
||||
return res; /* no resolve-undo record for the path */
|
||||
res = unmerge_index_entry(&the_index, path, item->util, 0);
|
||||
res = unmerge_index_entry(the_repository->index, path, item->util, 0);
|
||||
FREE_AND_NULL(item->util);
|
||||
return res;
|
||||
}
|
||||
@@ -688,13 +688,13 @@ static int do_reupdate(const char **paths,
|
||||
*/
|
||||
has_head = 0;
|
||||
redo:
|
||||
for (pos = 0; pos < the_index.cache_nr; pos++) {
|
||||
const struct cache_entry *ce = the_index.cache[pos];
|
||||
for (pos = 0; pos < the_repository->index->cache_nr; pos++) {
|
||||
const struct cache_entry *ce = the_repository->index->cache[pos];
|
||||
struct cache_entry *old = NULL;
|
||||
int save_nr;
|
||||
char *path;
|
||||
|
||||
if (ce_stage(ce) || !ce_path_match(&the_index, ce, &pathspec, NULL))
|
||||
if (ce_stage(ce) || !ce_path_match(the_repository->index, ce, &pathspec, NULL))
|
||||
continue;
|
||||
if (has_head)
|
||||
old = read_one_ent(NULL, &head_oid,
|
||||
@@ -710,7 +710,7 @@ static int do_reupdate(const char **paths,
|
||||
* to process each path individually
|
||||
*/
|
||||
if (S_ISSPARSEDIR(ce->ce_mode)) {
|
||||
ensure_full_index(&the_index);
|
||||
ensure_full_index(the_repository->index);
|
||||
goto redo;
|
||||
}
|
||||
|
||||
@@ -718,12 +718,12 @@ static int do_reupdate(const char **paths,
|
||||
* path anymore, in which case, under 'allow_remove',
|
||||
* or worse yet 'allow_replace', active_nr may decrease.
|
||||
*/
|
||||
save_nr = the_index.cache_nr;
|
||||
save_nr = the_repository->index->cache_nr;
|
||||
path = xstrdup(ce->name);
|
||||
update_one(path);
|
||||
free(path);
|
||||
discard_cache_entry(old);
|
||||
if (save_nr != the_index.cache_nr)
|
||||
if (save_nr != the_repository->index->cache_nr)
|
||||
goto redo;
|
||||
}
|
||||
clear_pathspec(&pathspec);
|
||||
@@ -739,9 +739,9 @@ static int refresh(struct refresh_params *o, unsigned int flag)
|
||||
{
|
||||
setup_work_tree();
|
||||
repo_read_index(the_repository);
|
||||
*o->has_errors |= refresh_index(&the_index, o->flags | flag, NULL,
|
||||
*o->has_errors |= refresh_index(the_repository->index, o->flags | flag, NULL,
|
||||
NULL, NULL);
|
||||
if (has_racy_timestamp(&the_index)) {
|
||||
if (has_racy_timestamp(the_repository->index)) {
|
||||
/*
|
||||
* Even if nothing else has changed, updating the file
|
||||
* increases the chance that racy timestamps become
|
||||
@@ -750,7 +750,7 @@ static int refresh(struct refresh_params *o, unsigned int flag)
|
||||
* refresh_index() as these are no actual errors.
|
||||
* cmd_status() does the same.
|
||||
*/
|
||||
the_index.cache_changed |= SOMETHING_CHANGED;
|
||||
the_repository->index->cache_changed |= SOMETHING_CHANGED;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -787,7 +787,7 @@ static int resolve_undo_clear_callback(const struct option *opt UNUSED,
|
||||
{
|
||||
BUG_ON_OPT_NEG(unset);
|
||||
BUG_ON_OPT_ARG(arg);
|
||||
resolve_undo_clear_index(&the_index);
|
||||
resolve_undo_clear_index(the_repository->index);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -888,7 +888,7 @@ static enum parse_opt_result unresolve_callback(
|
||||
*has_errors = do_unresolve(ctx->argc, ctx->argv,
|
||||
prefix, prefix ? strlen(prefix) : 0);
|
||||
if (*has_errors)
|
||||
the_index.cache_changed = 0;
|
||||
the_repository->index->cache_changed = 0;
|
||||
|
||||
ctx->argv += ctx->argc - 1;
|
||||
ctx->argc = 1;
|
||||
@@ -909,7 +909,7 @@ static enum parse_opt_result reupdate_callback(
|
||||
setup_work_tree();
|
||||
*has_errors = do_reupdate(ctx->argv + 1, prefix);
|
||||
if (*has_errors)
|
||||
the_index.cache_changed = 0;
|
||||
the_repository->index->cache_changed = 0;
|
||||
|
||||
ctx->argv += ctx->argc - 1;
|
||||
ctx->argc = 1;
|
||||
@@ -1056,7 +1056,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
if (entries < 0)
|
||||
die("cache corrupted");
|
||||
|
||||
the_index.updated_skipworktree = 1;
|
||||
the_repository->index->updated_skipworktree = 1;
|
||||
|
||||
/*
|
||||
* Custom copy of parse_options() because we want to handle
|
||||
@@ -1111,18 +1111,18 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
|
||||
if (preferred_index_format) {
|
||||
if (preferred_index_format < 0) {
|
||||
printf(_("%d\n"), the_index.version);
|
||||
printf(_("%d\n"), the_repository->index->version);
|
||||
} else if (preferred_index_format < INDEX_FORMAT_LB ||
|
||||
INDEX_FORMAT_UB < preferred_index_format) {
|
||||
die("index-version %d not in range: %d..%d",
|
||||
preferred_index_format,
|
||||
INDEX_FORMAT_LB, INDEX_FORMAT_UB);
|
||||
} else {
|
||||
if (the_index.version != preferred_index_format)
|
||||
the_index.cache_changed |= SOMETHING_CHANGED;
|
||||
if (the_repository->index->version != preferred_index_format)
|
||||
the_repository->index->cache_changed |= SOMETHING_CHANGED;
|
||||
report(_("index-version: was %d, set to %d"),
|
||||
the_index.version, preferred_index_format);
|
||||
the_index.version = preferred_index_format;
|
||||
the_repository->index->version, preferred_index_format);
|
||||
the_repository->index->version = preferred_index_format;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1159,16 +1159,16 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
warning(_("core.splitIndex is set to false; "
|
||||
"remove or change it, if you really want to "
|
||||
"enable split index"));
|
||||
if (the_index.split_index)
|
||||
the_index.cache_changed |= SPLIT_INDEX_ORDERED;
|
||||
if (the_repository->index->split_index)
|
||||
the_repository->index->cache_changed |= SPLIT_INDEX_ORDERED;
|
||||
else
|
||||
add_split_index(&the_index);
|
||||
add_split_index(the_repository->index);
|
||||
} else if (!split_index) {
|
||||
if (git_config_get_split_index() == 1)
|
||||
warning(_("core.splitIndex is set to true; "
|
||||
"remove or change it, if you really want to "
|
||||
"disable split index"));
|
||||
remove_split_index(&the_index);
|
||||
remove_split_index(the_repository->index);
|
||||
}
|
||||
|
||||
prepare_repo_settings(r);
|
||||
@@ -1180,7 +1180,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
warning(_("core.untrackedCache is set to true; "
|
||||
"remove or change it, if you really want to "
|
||||
"disable the untracked cache"));
|
||||
remove_untracked_cache(&the_index);
|
||||
remove_untracked_cache(the_repository->index);
|
||||
report(_("Untracked cache disabled"));
|
||||
break;
|
||||
case UC_TEST:
|
||||
@@ -1192,7 +1192,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
warning(_("core.untrackedCache is set to false; "
|
||||
"remove or change it, if you really want to "
|
||||
"enable the untracked cache"));
|
||||
add_untracked_cache(&the_index);
|
||||
add_untracked_cache(the_repository->index);
|
||||
report(_("Untracked cache enabled for '%s'"), get_git_work_tree());
|
||||
break;
|
||||
default:
|
||||
@@ -1222,7 +1222,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
"set it if you really want to "
|
||||
"enable fsmonitor"));
|
||||
}
|
||||
add_fsmonitor(&the_index);
|
||||
add_fsmonitor(the_repository->index);
|
||||
report(_("fsmonitor enabled"));
|
||||
} else if (!fsmonitor) {
|
||||
enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(r);
|
||||
@@ -1230,17 +1230,17 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
warning(_("core.fsmonitor is set; "
|
||||
"remove it if you really want to "
|
||||
"disable fsmonitor"));
|
||||
remove_fsmonitor(&the_index);
|
||||
remove_fsmonitor(the_repository->index);
|
||||
report(_("fsmonitor disabled"));
|
||||
}
|
||||
|
||||
if (the_index.cache_changed || force_write) {
|
||||
if (the_repository->index->cache_changed || force_write) {
|
||||
if (newfd < 0) {
|
||||
if (refresh_args.flags & REFRESH_QUIET)
|
||||
exit(128);
|
||||
unable_to_lock_die(get_index_file(), lock_error);
|
||||
}
|
||||
if (write_locked_index(&the_index, &lock_file, COMMIT_LOCK))
|
||||
if (write_locked_index(the_repository->index, &lock_file, COMMIT_LOCK))
|
||||
die("Unable to write new index file");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user