aboutsummaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-04-14 18:57:46 -0700
committerJunio C Hamano <gitster@pobox.com>2016-04-14 18:57:46 -0700
commit237e6db5c08b095d84d352206e6dcd332fbfca5a (patch)
treef08b974058b1bd1a0ef8ddb09f1065806a205796 /remote.c
parentf55f97cb3307f49e6b15d9f0145b6d3f00b22ff7 (diff)
parent11e6b3f6d544fd6b2914583749b90b29d1d8683d (diff)
downloadgit-237e6db5c08b095d84d352206e6dcd332fbfca5a.tar.xz
Merge branch 'jk/startup-info' into maint
The startup_info data, which records if we are working inside a repository (among other things), are now uniformly available to Git subcommand implementations, and Git avoids attempting to touch references when we are not in a repository. * jk/startup-info: use setup_git_directory() in test-* programs grep: turn off gitlink detection for --no-index mailmap: do not resolve blobs in a non-repository remote: don't resolve HEAD in non-repository setup: set startup_info->have_repository more reliably setup: make startup_info available everywhere
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/remote.c b/remote.c
index fc02698587..28fd676acb 100644
--- a/remote.c
+++ b/remote.c
@@ -455,7 +455,6 @@ static void read_config(void)
{
static int loaded;
struct object_id oid;
- const char *head_ref;
int flag;
if (loaded)
@@ -463,10 +462,12 @@ static void read_config(void)
loaded = 1;
current_branch = NULL;
- head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag);
- if (head_ref && (flag & REF_ISSYMREF) &&
- skip_prefix(head_ref, "refs/heads/", &head_ref)) {
- current_branch = make_branch(head_ref, 0);
+ if (startup_info->have_repository) {
+ const char *head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag);
+ if (head_ref && (flag & REF_ISSYMREF) &&
+ skip_prefix(head_ref, "refs/heads/", &head_ref)) {
+ current_branch = make_branch(head_ref, 0);
+ }
}
git_config(handle_config, NULL);
alias_all_urls();