}
}
- static void read_config(void)
+ static void read_config(struct repository *repo)
{
- static int loaded;
int flag;
- if (loaded)
+ if (repo->remote_state->initialized)
return;
- loaded = 1;
+ repo->remote_state->initialized = 1;
- current_branch = NULL;
+ repo->remote_state->current_branch = NULL;
if (startup_info->have_repository) {
- const char *head_ref = resolve_ref_unsafe("HEAD", 0, NULL, &flag);
++ int ignore_errno;
+ const char *head_ref = refs_resolve_ref_unsafe(
- get_main_ref_store(repo), "HEAD", 0, NULL, &flag);
++ get_main_ref_store(repo), "HEAD", 0, NULL, &flag, &ignore_errno);
if (head_ref && (flag & REF_ISSYMREF) &&
skip_prefix(head_ref, "refs/heads/", &head_ref)) {
- current_branch = make_branch(head_ref, strlen(head_ref));
+ repo->remote_state->current_branch = make_branch(
+ repo->remote_state, head_ref, strlen(head_ref));
}
}
- git_config(handle_config, NULL);
- alias_all_urls();
+ repo_config(repo, handle_config, repo->remote_state);
+ alias_all_urls(repo->remote_state);
}
static int valid_remote_nick(const char *name)