Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
remote: don't resolve HEAD in non-repository
The remote-config code wants to look at HEAD to mark the
current branch specially. But if we are not in a repository
(e.g., running "git archive --remote"), this makes no sense;
there is no HEAD to look at, and we have no current branch.

This doesn't really cause any bugs in practice (if you are
not in a repo, you probably don't have a .git/HEAD file),
but we should be more careful about triggering the refs code
at all in a non-repo. As we grow new ref backends, we would
not even know which backend to use.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Mar 7, 2016
1 parent f1c126b commit f2f12d1
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions remote.c
Expand Up @@ -455,18 +455,19 @@ static void read_config(void)
{
static int loaded;
struct object_id oid;
const char *head_ref;
int flag;

if (loaded)
return;
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();
Expand Down

0 comments on commit f2f12d1

Please sign in to comment.