summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Straub <bstraub@github.com>2012-07-31 19:49:19 -0700
committerBen Straub <bstraub@github.com>2012-07-31 19:49:19 -0700
commit5f4d2f9f6574fd41d9340ef80de0813bde80b76d (patch)
tree1c8e95f2816c8f1024df2b5c177be58bcf9972e8 /src
parent5280f4e6983555e9ae111a6cb10765c7635e7e12 (diff)
downloadlibgit2-5f4d2f9f6574fd41d9340ef80de0813bde80b76d.tar.gz
Checkout: fix problem with detached HEAD.
Diffstat (limited to 'src')
-rw-r--r--src/checkout.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/checkout.c b/src/checkout.c
index e8fba79a0..252d9c4ae 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -216,15 +216,12 @@ int git_checkout_reference(git_reference *ref,
git_reference *head = NULL;
int retcode = GIT_ERROR;
- if ((retcode = git_reference_lookup(&head, repo, GIT_HEAD_FILE)) < 0)
+ if ((retcode = git_reference_create_symbolic(&head, repo, GIT_HEAD_FILE,
+ git_reference_name(ref), true)) < 0)
return retcode;
- if ((retcode = git_reference_set_target(head, git_reference_name(ref))) < 0)
- goto gcr_cleanup;
-
retcode = git_checkout_head(git_reference_owner(ref), opts, stats);
-gcr_cleanup:
git_reference_free(head);
return retcode;
}