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 <pclouds@xxxxxxxxx> --- 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 9c0c278..1dbe88d 100644 --- a/index-pack.c +++ b/index-pack.c @@ -785,7 +785,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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html