commit 4df642d96698f559d3c086843ecd7c411f9963aa from: Stefan Sperling date: Sun Nov 05 12:54:45 2017 UTC add more special refs which live directly in .git commit - 2b4402a2eb769abead4dd3371af94390722b5c3c commit + 4df642d96698f559d3c086843ecd7c411f9963aa blob - 15d2c6083462f17fe66488835d99a0fdafacd063 blob + 874712f177a4a427bd773e1ed642c3c96a8c85cf --- include/got_refs.h +++ include/got_refs.h @@ -41,6 +41,7 @@ struct got_reference { #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 @@ -29,10 +29,13 @@ #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) { @@ -138,7 +141,10 @@ got_repo_get_reference(struct got_reference **ref, 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);