diff options
-rw-r--r-- | cgit.c | 24 | ||||
-rw-r--r-- | ui-commit.c | 1 | ||||
-rw-r--r-- | ui-log.c | 1 |
3 files changed, 24 insertions, 2 deletions
diff --git a/cgit.c b/cgit.c index f73c7b0..0bf8972 100644 --- a/cgit.c +++ b/cgit.c | |||
@@ -459,12 +459,36 @@ static char *guess_defbranch(void) | |||
459 | 459 | ||
460 | static int prepare_repo_cmd(struct cgit_context *ctx) | 460 | static int prepare_repo_cmd(struct cgit_context *ctx) |
461 | { | 461 | { |
462 | char *user_home; | ||
463 | char *xdg_home; | ||
462 | unsigned char sha1[20]; | 464 | unsigned char sha1[20]; |
463 | int nongit = 0; | 465 | int nongit = 0; |
464 | int rc; | 466 | int rc; |
465 | 467 | ||
468 | /* The path to the git repository. */ | ||
466 | setenv("GIT_DIR", ctx->repo->path, 1); | 469 | setenv("GIT_DIR", ctx->repo->path, 1); |
470 | |||
471 | /* Do not look in /etc/ for gitconfig and gitattributes. */ | ||
472 | setenv("GIT_CONFIG_NOSYSTEM", "1", 1); | ||
473 | setenv("GIT_ATTR_NOSYSTEM", "1", 1); | ||
474 | |||
475 | /* We unset HOME and XDG_CONFIG_HOME before calling the git setup function | ||
476 | * so that we don't make unneccessary filesystem accesses. */ | ||
477 | user_home = getenv("HOME"); | ||
478 | xdg_home = getenv("XDG_CONFIG_HOME"); | ||
479 | unsetenv("HOME"); | ||
480 | unsetenv("XDG_CONFIG_HOME"); | ||
481 | |||
482 | /* Setup the git directory and initialize the notes system. Both of these | ||
483 | * load local configuration from the git repository, so we do them both while | ||
484 | * the HOME variables are unset. */ | ||
467 | setup_git_directory_gently(&nongit); | 485 | setup_git_directory_gently(&nongit); |
486 | init_display_notes(NULL); | ||
487 | |||
488 | /* We restore the unset variables afterward. */ | ||
489 | setenv("HOME", user_home, 1); | ||
490 | setenv("XDG_CONFIG_HOME", xdg_home, 1); | ||
491 | |||
468 | if (nongit) { | 492 | if (nongit) { |
469 | const char *name = ctx->repo->name; | 493 | const char *name = ctx->repo->name; |
470 | rc = errno; | 494 | rc = errno; |
diff --git a/ui-commit.c b/ui-commit.c index 6b41017..a5a6ea8 100644 --- a/ui-commit.c +++ b/ui-commit.c | |||
@@ -37,7 +37,6 @@ void cgit_print_commit(char *hex, const char *prefix) | |||
37 | } | 37 | } |
38 | info = cgit_parse_commit(commit); | 38 | info = cgit_parse_commit(commit); |
39 | 39 | ||
40 | init_display_notes(NULL); | ||
41 | format_display_notes(sha1, ¬es, PAGE_ENCODING, 0); | 40 | format_display_notes(sha1, ¬es, PAGE_ENCODING, 0); |
42 | 41 | ||
43 | load_ref_decorations(DECORATE_FULL_REFS); | 42 | load_ref_decorations(DECORATE_FULL_REFS); |
diff --git a/ui-log.c b/ui-log.c index 93af0ce..2aa12c3 100644 --- a/ui-log.c +++ b/ui-log.c | |||
@@ -403,7 +403,6 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern | |||
403 | commit->parents = NULL; | 403 | commit->parents = NULL; |
404 | } | 404 | } |
405 | 405 | ||
406 | init_display_notes(NULL); | ||
407 | for (i = 0; i < cnt && (commit = get_revision(&rev)) != NULL; i++) { | 406 | for (i = 0; i < cnt && (commit = get_revision(&rev)) != NULL; i++) { |
408 | print_commit(commit, &rev); | 407 | print_commit(commit, &rev); |
409 | free(commit->buffer); | 408 | free(commit->buffer); |