Merge branch 'nd/the-index-final'

The assumption to work on the single "in-core index" instance has
been reduced from the library-ish part of the codebase.

* nd/the-index-final:
  cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
  read-cache.c: remove the_* from index_has_changes()
  merge-recursive.c: remove implicit dependency on the_repository
  merge-recursive.c: remove implicit dependency on the_index
  sha1-name.c: remove implicit dependency on the_index
  read-cache.c: replace update_index_if_able with repo_&
  read-cache.c: kill read_index()
  checkout: avoid the_index when possible
  repository.c: replace hold_locked_index() with repo_hold_locked_index()
  notes-utils.c: remove the_repository references
  grep: use grep_opt->repo instead of explict repo argument
This commit is contained in:
Junio C Hamano
2019-02-06 22:05:22 -08:00
74 changed files with 394 additions and 296 deletions

View File

@ -447,9 +447,9 @@ static struct tree *empty_tree(struct repository *r)
return lookup_tree(r, the_hash_algo->empty_tree);
}
static int error_dirty_index(struct index_state *istate, struct replay_opts *opts)
static int error_dirty_index(struct repository *repo, struct replay_opts *opts)
{
if (read_index_unmerged(istate))
if (repo_read_index_unmerged(repo))
return error_resolve_conflict(_(action_name(opts)));
error(_("your local changes would be overwritten by %s."),
@ -484,7 +484,7 @@ static int fast_forward_to(struct repository *r,
struct strbuf sb = STRBUF_INIT;
struct strbuf err = STRBUF_INIT;
read_index(r->index);
repo_read_index(r);
if (checkout_fast_forward(r, from, to, 1))
return -1; /* the callee should have complained already */
@ -541,12 +541,12 @@ static int do_recursive_merge(struct repository *r,
char **xopt;
struct lock_file index_lock = LOCK_INIT;
if (hold_locked_index(&index_lock, LOCK_REPORT_ON_ERROR) < 0)
if (repo_hold_locked_index(r, &index_lock, LOCK_REPORT_ON_ERROR) < 0)
return -1;
read_index(r->index);
repo_read_index(r);
init_merge_options(&o);
init_merge_options(&o, r);
o.ancestor = base ? base_label : "(empty tree)";
o.branch1 = "HEAD";
o.branch2 = next ? next_label : "(empty tree)";
@ -1116,7 +1116,8 @@ static int run_rewrite_hook(const struct object_id *oldoid,
return finish_command(&proc);
}
void commit_post_rewrite(const struct commit *old_head,
void commit_post_rewrite(struct repository *r,
const struct commit *old_head,
const struct object_id *new_head)
{
struct notes_rewrite_cfg *cfg;
@ -1125,7 +1126,7 @@ void commit_post_rewrite(const struct commit *old_head,
if (cfg) {
/* we are amending, so old_head is not NULL */
copy_note_for_rewrite(cfg, &old_head->object.oid, new_head);
finish_copy_notes_for_rewrite(cfg, "Notes added by 'git commit --amend'");
finish_copy_notes_for_rewrite(r, cfg, "Notes added by 'git commit --amend'");
}
run_rewrite_hook(&old_head->object.oid, new_head);
}
@ -1406,7 +1407,7 @@ static int try_to_commit(struct repository *r,
}
if (flags & AMEND_MSG)
commit_post_rewrite(current_head, oid);
commit_post_rewrite(r, current_head, oid);
out:
free_commit_extra_headers(extra);
@ -1768,7 +1769,7 @@ static int do_pick_commit(struct repository *r,
oidcpy(&head, the_hash_algo->empty_tree);
if (index_differs_from(r, unborn ? empty_tree_oid_hex() : "HEAD",
NULL, 0))
return error_dirty_index(r->index, opts);
return error_dirty_index(r, opts);
}
discard_index(r->index);
@ -1998,8 +1999,8 @@ static int read_and_refresh_cache(struct repository *r,
struct replay_opts *opts)
{
struct lock_file index_lock = LOCK_INIT;
int index_fd = hold_locked_index(&index_lock, 0);
if (read_index(r->index) < 0) {
int index_fd = repo_hold_locked_index(r, &index_lock, 0);
if (repo_read_index(r) < 0) {
rollback_lock_file(&index_lock);
return error(_("git %s: failed to read the index"),
_(action_name(opts)));
@ -2865,7 +2866,7 @@ static int do_exec(struct repository *r, const char *command_line)
child_env.argv);
/* force re-reading of the cache */
if (discard_index(r->index) < 0 || read_index(r->index) < 0)
if (discard_index(r->index) < 0 || repo_read_index(r) < 0)
return error(_("could not read index"));
dirty = require_clean_work_tree(r, "rebase", NULL, 1, 1);
@ -2989,7 +2990,7 @@ static int do_reset(struct repository *r,
struct unpack_trees_options unpack_tree_opts;
int ret = 0;
if (hold_locked_index(&lock, LOCK_REPORT_ON_ERROR) < 0)
if (repo_hold_locked_index(r, &lock, LOCK_REPORT_ON_ERROR) < 0)
return -1;
if (len == 10 && !strncmp("[new root]", name, len)) {
@ -3034,7 +3035,7 @@ static int do_reset(struct repository *r,
unpack_tree_opts.merge = 1;
unpack_tree_opts.update = 1;
if (read_index_unmerged(r->index)) {
if (repo_read_index_unmerged(r)) {
rollback_lock_file(&lock);
strbuf_release(&ref_name);
return error_resolve_conflict(_(action_name(opts)));
@ -3107,7 +3108,7 @@ static int do_merge(struct repository *r,
static struct lock_file lock;
const char *p;
if (hold_locked_index(&lock, LOCK_REPORT_ON_ERROR) < 0) {
if (repo_hold_locked_index(r, &lock, LOCK_REPORT_ON_ERROR) < 0) {
ret = -1;
goto leave_merge;
}
@ -3288,7 +3289,7 @@ static int do_merge(struct repository *r,
/* force re-reading of the cache */
if (!ret && (discard_index(r->index) < 0 ||
read_index(r->index) < 0))
repo_read_index(r) < 0))
ret = error(_("could not read index"));
goto leave_merge;
}
@ -3310,8 +3311,8 @@ static int do_merge(struct repository *r,
commit_list_insert(j->item, &reversed);
free_commit_list(bases);
read_index(r->index);
init_merge_options(&o);
repo_read_index(r);
init_merge_options(&o, r);
o.branch1 = "HEAD";
o.branch2 = ref_name.buf;
o.buffer_output = 2;
@ -3987,7 +3988,7 @@ int sequencer_continue(struct repository *r, struct replay_opts *opts)
goto release_todo_list;
}
if (index_differs_from(r, "HEAD", NULL, 0)) {
res = error_dirty_index(r->index, opts);
res = error_dirty_index(r, opts);
goto release_todo_list;
}
todo_list.current++;