зеркало из https://github.com/microsoft/git.git
setenv(GIT_DIR) clean-up
This patch converts the setenv() calls in path.c and setup.c. After
the call, git grep with a pager works again in bare repos.
It leaves the setenv(GIT_DIR_ENVIRONMENT, ...) calls in git.c alone, as
they respond to command line switches that emulate the effect of setting
the environment variable directly.
The remaining site in environment.c is in set_git_dir() and is left
alone, too, of course. Finally, builtin-init-db.c is left changed
because the repo is still being carefully constructed when the
environment variable is set.
This fixes git shortlog when run inside a git directory, which had been
broken by abe549e1
.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
ab35469de0
Коммит
717c3972da
2
path.c
2
path.c
|
@ -336,7 +336,7 @@ char *enter_repo(char *path, int strict)
|
||||||
|
|
||||||
if (access("objects", X_OK) == 0 && access("refs", X_OK) == 0 &&
|
if (access("objects", X_OK) == 0 && access("refs", X_OK) == 0 &&
|
||||||
validate_headref("HEAD") == 0) {
|
validate_headref("HEAD") == 0) {
|
||||||
setenv(GIT_DIR_ENVIRONMENT, ".", 1);
|
set_git_dir(".");
|
||||||
check_repository_format();
|
check_repository_format();
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
4
setup.c
4
setup.c
|
@ -404,9 +404,9 @@ const char *setup_git_directory_gently(int *nongit_ok)
|
||||||
inside_work_tree = 0;
|
inside_work_tree = 0;
|
||||||
if (offset != len) {
|
if (offset != len) {
|
||||||
cwd[offset] = '\0';
|
cwd[offset] = '\0';
|
||||||
setenv(GIT_DIR_ENVIRONMENT, cwd, 1);
|
set_git_dir(cwd);
|
||||||
} else
|
} else
|
||||||
setenv(GIT_DIR_ENVIRONMENT, ".", 1);
|
set_git_dir(".");
|
||||||
check_repository_format_gently(nongit_ok);
|
check_repository_format_gently(nongit_ok);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче