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
@ -1,4 +1,3 @@
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "builtin.h"
|
||||
#include "advice.h"
|
||||
#include "branch.h"
|
||||
@ -146,7 +145,7 @@ static int update_some(const struct object_id *oid, struct strbuf *base,
|
||||
return READ_TREE_RECURSIVE;
|
||||
|
||||
len = base->len + strlen(pathname);
|
||||
ce = make_empty_cache_entry(&the_index, len);
|
||||
ce = make_empty_cache_entry(the_repository->index, len);
|
||||
oidcpy(&ce->oid, oid);
|
||||
memcpy(ce->name, base->buf, base->len);
|
||||
memcpy(ce->name + base->len, pathname, len - base->len);
|
||||
@ -159,9 +158,9 @@ static int update_some(const struct object_id *oid, struct strbuf *base,
|
||||
* entry in place. Whether it is UPTODATE or not, checkout_entry will
|
||||
* do the right thing.
|
||||
*/
|
||||
pos = index_name_pos(&the_index, ce->name, ce->ce_namelen);
|
||||
pos = index_name_pos(the_repository->index, ce->name, ce->ce_namelen);
|
||||
if (pos >= 0) {
|
||||
struct cache_entry *old = the_index.cache[pos];
|
||||
struct cache_entry *old = the_repository->index->cache[pos];
|
||||
if (ce->ce_mode == old->ce_mode &&
|
||||
!ce_intent_to_add(old) &&
|
||||
oideq(&ce->oid, &old->oid)) {
|
||||
@ -171,7 +170,7 @@ static int update_some(const struct object_id *oid, struct strbuf *base,
|
||||
}
|
||||
}
|
||||
|
||||
add_index_entry(&the_index, ce,
|
||||
add_index_entry(the_repository->index, ce,
|
||||
ADD_CACHE_OK_TO_ADD | ADD_CACHE_OK_TO_REPLACE);
|
||||
return 0;
|
||||
}
|
||||
@ -190,8 +189,8 @@ static int read_tree_some(struct tree *tree, const struct pathspec *pathspec)
|
||||
|
||||
static int skip_same_name(const struct cache_entry *ce, int pos)
|
||||
{
|
||||
while (++pos < the_index.cache_nr &&
|
||||
!strcmp(the_index.cache[pos]->name, ce->name))
|
||||
while (++pos < the_repository->index->cache_nr &&
|
||||
!strcmp(the_repository->index->cache[pos]->name, ce->name))
|
||||
; /* skip */
|
||||
return pos;
|
||||
}
|
||||
@ -199,9 +198,9 @@ static int skip_same_name(const struct cache_entry *ce, int pos)
|
||||
static int check_stage(int stage, const struct cache_entry *ce, int pos,
|
||||
int overlay_mode)
|
||||
{
|
||||
while (pos < the_index.cache_nr &&
|
||||
!strcmp(the_index.cache[pos]->name, ce->name)) {
|
||||
if (ce_stage(the_index.cache[pos]) == stage)
|
||||
while (pos < the_repository->index->cache_nr &&
|
||||
!strcmp(the_repository->index->cache[pos]->name, ce->name)) {
|
||||
if (ce_stage(the_repository->index->cache[pos]) == stage)
|
||||
return 0;
|
||||
pos++;
|
||||
}
|
||||
@ -218,8 +217,8 @@ static int check_stages(unsigned stages, const struct cache_entry *ce, int pos)
|
||||
unsigned seen = 0;
|
||||
const char *name = ce->name;
|
||||
|
||||
while (pos < the_index.cache_nr) {
|
||||
ce = the_index.cache[pos];
|
||||
while (pos < the_repository->index->cache_nr) {
|
||||
ce = the_repository->index->cache[pos];
|
||||
if (strcmp(name, ce->name))
|
||||
break;
|
||||
seen |= (1 << ce_stage(ce));
|
||||
@ -235,10 +234,10 @@ static int checkout_stage(int stage, const struct cache_entry *ce, int pos,
|
||||
const struct checkout *state, int *nr_checkouts,
|
||||
int overlay_mode)
|
||||
{
|
||||
while (pos < the_index.cache_nr &&
|
||||
!strcmp(the_index.cache[pos]->name, ce->name)) {
|
||||
if (ce_stage(the_index.cache[pos]) == stage)
|
||||
return checkout_entry(the_index.cache[pos], state,
|
||||
while (pos < the_repository->index->cache_nr &&
|
||||
!strcmp(the_repository->index->cache[pos]->name, ce->name)) {
|
||||
if (ce_stage(the_repository->index->cache[pos]) == stage)
|
||||
return checkout_entry(the_repository->index->cache[pos], state,
|
||||
NULL, nr_checkouts);
|
||||
pos++;
|
||||
}
|
||||
@ -256,7 +255,7 @@ static int checkout_merged(int pos, const struct checkout *state,
|
||||
int *nr_checkouts, struct mem_pool *ce_mem_pool,
|
||||
int conflict_style)
|
||||
{
|
||||
struct cache_entry *ce = the_index.cache[pos];
|
||||
struct cache_entry *ce = the_repository->index->cache[pos];
|
||||
const char *path = ce->name;
|
||||
mmfile_t ancestor, ours, theirs;
|
||||
enum ll_merge_result merge_status;
|
||||
@ -269,7 +268,7 @@ static int checkout_merged(int pos, const struct checkout *state,
|
||||
int renormalize = 0;
|
||||
|
||||
memset(threeway, 0, sizeof(threeway));
|
||||
while (pos < the_index.cache_nr) {
|
||||
while (pos < the_repository->index->cache_nr) {
|
||||
int stage;
|
||||
stage = ce_stage(ce);
|
||||
if (!stage || strcmp(path, ce->name))
|
||||
@ -278,7 +277,7 @@ static int checkout_merged(int pos, const struct checkout *state,
|
||||
if (stage == 2)
|
||||
mode = create_ce_mode(ce->ce_mode);
|
||||
pos++;
|
||||
ce = the_index.cache[pos];
|
||||
ce = the_repository->index->cache[pos];
|
||||
}
|
||||
if (is_null_oid(&threeway[1]) || is_null_oid(&threeway[2]))
|
||||
return error(_("path '%s' does not have necessary versions"), path);
|
||||
@ -356,7 +355,7 @@ static void mark_ce_for_checkout_overlay(struct cache_entry *ce,
|
||||
* match_pathspec() for _all_ entries when
|
||||
* opts->source_tree != NULL.
|
||||
*/
|
||||
if (ce_path_match(&the_index, ce, &opts->pathspec, ps_matched))
|
||||
if (ce_path_match(the_repository->index, ce, &opts->pathspec, ps_matched))
|
||||
ce->ce_flags |= CE_MATCHED;
|
||||
}
|
||||
|
||||
@ -367,7 +366,7 @@ static void mark_ce_for_checkout_no_overlay(struct cache_entry *ce,
|
||||
ce->ce_flags &= ~CE_MATCHED;
|
||||
if (!opts->ignore_skipworktree && ce_skip_worktree(ce))
|
||||
return;
|
||||
if (ce_path_match(&the_index, ce, &opts->pathspec, ps_matched)) {
|
||||
if (ce_path_match(the_repository->index, ce, &opts->pathspec, ps_matched)) {
|
||||
ce->ce_flags |= CE_MATCHED;
|
||||
if (opts->source_tree && !(ce->ce_flags & CE_UPDATE))
|
||||
/*
|
||||
@ -391,7 +390,7 @@ static int checkout_worktree(const struct checkout_opts *opts,
|
||||
|
||||
state.force = 1;
|
||||
state.refresh_cache = 1;
|
||||
state.istate = &the_index;
|
||||
state.istate = the_repository->index;
|
||||
|
||||
mem_pool_init(&ce_mem_pool, 0);
|
||||
get_parallel_checkout_configs(&pc_workers, &pc_threshold);
|
||||
@ -404,8 +403,8 @@ static int checkout_worktree(const struct checkout_opts *opts,
|
||||
if (pc_workers > 1)
|
||||
init_parallel_checkout();
|
||||
|
||||
for (pos = 0; pos < the_index.cache_nr; pos++) {
|
||||
struct cache_entry *ce = the_index.cache[pos];
|
||||
for (pos = 0; pos < the_repository->index->cache_nr; pos++) {
|
||||
struct cache_entry *ce = the_repository->index->cache[pos];
|
||||
if (ce->ce_flags & CE_MATCHED) {
|
||||
if (!ce_stage(ce)) {
|
||||
errs |= checkout_entry(ce, &state,
|
||||
@ -429,7 +428,7 @@ static int checkout_worktree(const struct checkout_opts *opts,
|
||||
errs |= run_parallel_checkout(&state, pc_workers, pc_threshold,
|
||||
NULL, NULL);
|
||||
mem_pool_discard(&ce_mem_pool, should_validate_cache_entries());
|
||||
remove_marked_cache_entries(&the_index, 1);
|
||||
remove_marked_cache_entries(the_repository->index, 1);
|
||||
remove_scheduled_dirs();
|
||||
errs |= finish_delayed_checkout(&state, opts->show_progress);
|
||||
|
||||
@ -571,7 +570,7 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
if (opts->source_tree)
|
||||
read_tree_some(opts->source_tree, &opts->pathspec);
|
||||
if (opts->merge)
|
||||
unmerge_index(&the_index, &opts->pathspec, CE_MATCHED);
|
||||
unmerge_index(the_repository->index, &opts->pathspec, CE_MATCHED);
|
||||
|
||||
ps_matched = xcalloc(opts->pathspec.nr, 1);
|
||||
|
||||
@ -579,13 +578,13 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
* Make sure all pathspecs participated in locating the paths
|
||||
* to be checked out.
|
||||
*/
|
||||
for (pos = 0; pos < the_index.cache_nr; pos++)
|
||||
for (pos = 0; pos < the_repository->index->cache_nr; pos++)
|
||||
if (opts->overlay_mode)
|
||||
mark_ce_for_checkout_overlay(the_index.cache[pos],
|
||||
mark_ce_for_checkout_overlay(the_repository->index->cache[pos],
|
||||
ps_matched,
|
||||
opts);
|
||||
else
|
||||
mark_ce_for_checkout_no_overlay(the_index.cache[pos],
|
||||
mark_ce_for_checkout_no_overlay(the_repository->index->cache[pos],
|
||||
ps_matched,
|
||||
opts);
|
||||
|
||||
@ -596,8 +595,8 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
free(ps_matched);
|
||||
|
||||
/* Any unmerged paths? */
|
||||
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];
|
||||
if (ce->ce_flags & CE_MATCHED) {
|
||||
if (!ce_stage(ce))
|
||||
continue;
|
||||
@ -622,7 +621,7 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
if (opts->checkout_worktree)
|
||||
errs |= checkout_worktree(opts, new_branch_info);
|
||||
else
|
||||
remove_marked_cache_entries(&the_index, 1);
|
||||
remove_marked_cache_entries(the_repository->index, 1);
|
||||
|
||||
/*
|
||||
* Allow updating the index when checking out from the index.
|
||||
@ -634,7 +633,7 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
checkout_index = opts->checkout_index;
|
||||
|
||||
if (checkout_index) {
|
||||
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"));
|
||||
} else {
|
||||
/*
|
||||
@ -703,8 +702,8 @@ static int reset_tree(struct tree *tree, const struct checkout_opts *o,
|
||||
opts.merge = 1;
|
||||
opts.fn = oneway_merge;
|
||||
opts.verbose_update = o->show_progress;
|
||||
opts.src_index = &the_index;
|
||||
opts.dst_index = &the_index;
|
||||
opts.src_index = the_repository->index;
|
||||
opts.dst_index = the_repository->index;
|
||||
init_checkout_metadata(&opts.meta, info->refname,
|
||||
info->commit ? &info->commit->object.oid : null_oid(),
|
||||
NULL);
|
||||
@ -756,12 +755,12 @@ static void init_topts(struct unpack_trees_options *topts, int merge,
|
||||
{
|
||||
memset(topts, 0, sizeof(*topts));
|
||||
topts->head_idx = -1;
|
||||
topts->src_index = &the_index;
|
||||
topts->dst_index = &the_index;
|
||||
topts->src_index = the_repository->index;
|
||||
topts->dst_index = the_repository->index;
|
||||
|
||||
setup_unpack_trees_porcelain(topts, "checkout");
|
||||
|
||||
topts->initial_checkout = is_index_unborn(&the_index);
|
||||
topts->initial_checkout = is_index_unborn(the_repository->index);
|
||||
topts->update = 1;
|
||||
topts->merge = 1;
|
||||
topts->quiet = merge && old_commit;
|
||||
@ -783,7 +782,7 @@ static int merge_working_tree(const struct checkout_opts *opts,
|
||||
if (repo_read_index_preload(the_repository, NULL, 0) < 0)
|
||||
return error(_("index file corrupt"));
|
||||
|
||||
resolve_undo_clear_index(&the_index);
|
||||
resolve_undo_clear_index(the_repository->index);
|
||||
if (opts->new_orphan_branch && opts->orphan_from_empty_tree) {
|
||||
if (new_branch_info->commit)
|
||||
BUG("'switch --orphan' should never accept a commit as starting point");
|
||||
@ -807,9 +806,9 @@ static int merge_working_tree(const struct checkout_opts *opts,
|
||||
struct unpack_trees_options topts;
|
||||
const struct object_id *old_commit_oid;
|
||||
|
||||
refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
|
||||
refresh_index(the_repository->index, REFRESH_QUIET, NULL, NULL, NULL);
|
||||
|
||||
if (unmerged_index(&the_index)) {
|
||||
if (unmerged_index(the_repository->index)) {
|
||||
error(_("you need to resolve your current index first"));
|
||||
return 1;
|
||||
}
|
||||
@ -919,10 +918,10 @@ static int merge_working_tree(const struct checkout_opts *opts,
|
||||
}
|
||||
}
|
||||
|
||||
if (!cache_tree_fully_valid(the_index.cache_tree))
|
||||
cache_tree_update(&the_index, WRITE_TREE_SILENT | WRITE_TREE_REPAIR);
|
||||
if (!cache_tree_fully_valid(the_repository->index->cache_tree))
|
||||
cache_tree_update(the_repository->index, WRITE_TREE_SILENT | WRITE_TREE_REPAIR);
|
||||
|
||||
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"));
|
||||
|
||||
if (!opts->discard_changes && !opts->quiet && new_branch_info->commit)
|
||||
|
Reference in New Issue
Block a user