diff options
-rw-r--r-- | cache.h | 1 | ||||
-rw-r--r-- | fsck-objects.c | 5 | ||||
-rw-r--r-- | path.c | 4 | ||||
-rw-r--r-- | sha1_file.c | 7 |
4 files changed, 10 insertions, 7 deletions
@@ -136,6 +136,7 @@ extern unsigned int active_nr, active_alloc, active_cache_changed; #define INDEX_ENVIRONMENT "GIT_INDEX_FILE" #define GRAFT_ENVIRONMENT "GIT_GRAFT_FILE" +extern char *get_git_dir(void); extern char *get_object_directory(void); extern char *get_refs_directory(void); extern char *get_index_file(void); diff --git a/fsck-objects.c b/fsck-objects.c index 6cb0f29be8..b82685fd71 100644 --- a/fsck-objects.c +++ b/fsck-objects.c @@ -406,10 +406,7 @@ static int fsck_head_link(void) char hex[40]; unsigned char sha1[20]; static char path[PATH_MAX], link[PATH_MAX]; - const char *git_dir; - - git_dir = getenv(GIT_DIR_ENVIRONMENT); - if (!git_dir) git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; + const char *git_dir = get_git_dir(); snprintf(path, sizeof(path), "%s/HEAD", git_dir); if (readlink(path, link, sizeof(link)) < 0) @@ -41,12 +41,10 @@ char *mkpath(const char *fmt, ...) char *git_path(const char *fmt, ...) { - const char *git_dir; + const char *git_dir = get_git_dir(); va_list args; unsigned len; - git_dir = getenv(GIT_DIR_ENVIRONMENT); - if (!git_dir) git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; len = strlen(git_dir); if (len > PATH_MAX-100) return bad_path; diff --git a/sha1_file.c b/sha1_file.c index 6638202781..fe374c6132 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -70,6 +70,13 @@ static void setup_git_env(void) git_graft_file = strdup(git_path("info/grafts")); } +char *get_git_dir(void) +{ + if (!git_dir) + setup_git_env(); + return git_dir; +} + char *get_object_directory(void) { if (!git_object_dir) |