Merge branch 'jh/add-index-entry-optim'
[gitweb.git] / environment.c
index 88276790db4175f710597b5c69cc1757e302eecd..ff6e4f06e93d642aa53ba1812c3788b0ccad092e 100644 (file)
@@ -167,8 +167,11 @@ static void setup_git_env(void)
        const char *replace_ref_base;
 
        git_dir = getenv(GIT_DIR_ENVIRONMENT);
-       if (!git_dir)
+       if (!git_dir) {
+               if (!startup_info->have_repository)
+                       die("BUG: setup_git_env called without repository");
                git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
+       }
        gitfile = read_gitfile(git_dir);
        git_dir = xstrdup(gitfile ? gitfile : git_dir);
        if (get_common_dir(&sb, git_dir))
@@ -282,16 +285,14 @@ int odb_mkstemp(struct strbuf *template, const char *pattern)
         * restrictive except to remove write permission.
         */
        int mode = 0444;
-       strbuf_reset(template);
-       strbuf_addf(template, "%s/%s", get_object_directory(), pattern);
+       git_path_buf(template, "objects/%s", pattern);
        fd = git_mkstemp_mode(template->buf, mode);
        if (0 <= fd)
                return fd;
 
        /* slow path */
        /* some mkstemp implementations erase template on failure */
-       strbuf_reset(template);
-       strbuf_addf(template, "%s/%s", get_object_directory(), pattern);
+       git_path_buf(template, "objects/%s", pattern);
        safe_create_leading_directories(template->buf);
        return xmkstemp_mode(template->buf, mode);
 }