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
| @@ -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); |
| @@ -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); |
