From: Ralf Ebert Date: Fri, 13 Aug 2010 17:25:34 GMT Subject: [PATCH/RFC v2] More readable 'Not a git repository' messages Message-ID: In-Reply-To: * State the folder concerned with the operation * GIT_DISCOVERY_ACROSS_FILESYSTEM warning goes first * Supressed 'filesystem boundary' warning for $HOME (crypto home volumes are common, having a git repository at $HOME is uncommon) * Improved wording of the messages Signed-off-by: Ralf Ebert --- setup.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/setup.c b/setup.c index 2769160..dc4f2da 100644 --- a/setup.c +++ b/setup.c @@ -431,7 +431,7 @@ const char *setup_git_directory_gently(int *nongit_ok) *nongit_ok = 1; return NULL; } - die("Not a git repository (or any of the parent directories): %s", DEFAULT_GIT_DIR_ENVIRONMENT); + die("%s is not in a git repository", cwd); } if (one_filesystem) { if (stat("..", &buf)) { @@ -445,9 +445,13 @@ const char *setup_git_directory_gently(int *nongit_ok) *nongit_ok = 1; return NULL; } - cwd[offset] = '\0'; - die("Not a git repository (or any parent up to mount parent %s)\n" - "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).", cwd); + + const char *home = getenv("HOME"); + if (home == NULL || strncmp(home, cwd, offset) != 0) { + warning("Stopped searching for repository at %.*s " + "as GIT_DISCOVERY_ACROSS_FILESYSTEM is not set", offset, cwd); + } + die("%s is not in a git repository", cwd); } } if (chdir("..")) { -- 1.7.2.1.96.g07594.dirty