[PATCH 2/9] Make sure setup_git_directory is called before accessing repository
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:44:17
Subsystem:
the rest · Maintainer:
Linus Torvalds
Right now setup_git_env is called automatically when needed and will not die out if $GIT_DIR is invalid. The next patch no longer guarantee that, so make sure all commands have environment properly setup before using. Signed-off-by: Nguyễn Thái Ngọc Duy <redacted> --- fast-import.c | 1 + hash-object.c | 10 +++++----- index-pack.c | 2 ++ 3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/fast-import.c b/fast-import.c
index 0d3449f..7f197d5 100644
--- a/fast-import.c
+++ b/fast-import.c@@ -2377,6 +2377,7 @@ int main(int argc, const char **argv) { unsigned int i, show_stats = 1; + setup_git_directory(); git_config(git_pack_config); if (!pack_compression_seen && core_compression_seen) pack_compression_level = core_compression_level;
diff --git a/hash-object.c b/hash-object.c
index 61e7160..46d57ad 100644
--- a/hash-object.c
+++ b/hash-object.c@@ -42,7 +42,10 @@ int main(int argc, char **argv) int prefix_length = -1; int no_more_flags = 0; int hashstdin = 0; + int nongit = 0; + prefix = setup_git_directory_gently(&nongit); + prefix_length = prefix ? strlen(prefix) : 0; git_config(git_default_config); for (i = 1 ; i < argc; i++) {
@@ -53,11 +56,8 @@ int main(int argc, char **argv) type = argv[i]; } else if (!strcmp(argv[i], "-w")) { - if (prefix_length < 0) { - prefix = setup_git_directory(); - prefix_length = - prefix ? strlen(prefix) : 0; - } + if (nongit) + die("Not a git repository"); write_object = 1; } else if (!strcmp(argv[i], "--")) {
diff --git a/index-pack.c b/index-pack.c
index 9fd6982..b4c2310 100644
--- a/index-pack.c
+++ b/index-pack.c@@ -703,7 +703,9 @@ int main(int argc, char **argv) char *index_name_buf = NULL, *keep_name_buf = NULL; struct pack_idx_entry **idx_objects; unsigned char sha1[20]; + int nongit = 0; + setup_git_directory_gently(&nongit); git_config(git_index_pack_config); for (i = 1; i < argc; i++) {
--
1.5.4.2.281.g28d0e