commit - 2b4402a2eb769abead4dd3371af94390722b5c3c
commit + 4df642d96698f559d3c086843ecd7c411f9963aa
blob - 15d2c6083462f17fe66488835d99a0fdafacd063
blob + 874712f177a4a427bd773e1ed642c3c96a8c85cf
--- include/got_refs.h
+++ include/got_refs.h
#define GOT_REF_HEAD "HEAD"
#define GOT_REF_ORIG_HEAD "ORIG_HEAD"
#define GOT_REF_MERGE_HEAD "MERGE_HEAD"
+#define GOT_REF_FETCH_HEAD "FETCH_HEAD"
const struct got_error *
got_ref_open(struct got_reference **, const char *, const char *);
blob - 027227957542ba934c06656d05c21772958bf4ac
blob + f96d8386ea1f6ce81118440eab08d45a8edae8dd
--- lib/repository.c
+++ lib/repository.c
#define GOT_GIT_DIR ".git"
/* Mandatory files and directories inside the git directory. */
-#define GOT_OBJECTS_DIR "objects"
-#define GOT_REFS_DIR "refs"
-#define GOT_HEAD_FILE "HEAD"
+#define GOT_OBJECTS_DIR "objects"
+#define GOT_REFS_DIR "refs"
+#define GOT_HEAD_FILE "HEAD"
+#define GOT_FETCH_HEAD_FILE "FETCH_HEAD"
+#define GOT_ORIG_HEAD_FILE "ORIG_HEAD"
+
static char *
get_path_git_dir(struct got_repository *repo)
{
char *path_refs;
/* Some refs live in the .git directory. */
- if (strcmp(refname, GOT_REF_HEAD) == 0)
+ if (strcmp(refname, GOT_REF_HEAD) == 0 ||
+ strcmp(refname, GOT_REF_ORIG_HEAD) == 0 ||
+ strcmp(refname, GOT_REF_MERGE_HEAD) == 0 ||
+ strcmp(refname, GOT_REF_FETCH_HEAD) == 0)
path_refs = get_path_git_dir(repo);
else
path_refs = get_path_refs(repo);