X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=refs.c;h=f324be50325d1ba765fbbb823937bf68ef91c0aa;hb=27dedf0c3b78d1072fb5449149421284f9e5297b;hp=97506a4ebdfbd164abad6be76d7160db171d9148;hpb=f865a2ad981f72423aa1c19412ce57c543801957;p=git.git diff --git a/refs.c b/refs.c index 97506a4e..f324be50 100644 --- a/refs.c +++ b/refs.c @@ -116,14 +116,19 @@ const char *resolve_ref(const char *path, unsigned char *sha1, int reading) int create_symref(const char *git_HEAD, const char *refs_heads_master) { -#if USE_SYMLINK_HEAD - unlink(git_HEAD); - return symlink(refs_heads_master, git_HEAD); -#else const char *lockpath; char ref[1000]; int fd, len, written; +#if USE_SYMLINK_HEAD + if (!only_use_symrefs) { + unlink(git_HEAD); + if (!symlink(refs_heads_master, git_HEAD)) + return 0; + fprintf(stderr, "no symlink - falling back to symbolic ref\n"); + } +#endif + len = snprintf(ref, sizeof(ref), "ref: %s\n", refs_heads_master); if (sizeof(ref) <= len) { error("refname too long: %s", refs_heads_master); @@ -144,7 +149,6 @@ int create_symref(const char *git_HEAD, const char *refs_heads_master) return -3; } return 0; -#endif } int read_ref(const char *filename, unsigned char *sha1)