]> git.ipfire.org Git - thirdparty/git.git/commitdiff
prefix_path: show gitdir when arg is outside repo
authorEmily Shaffer <emilyshaffer@google.com>
Sat, 15 Feb 2020 01:00:13 +0000 (17:00 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Feb 2020 23:32:59 +0000 (15:32 -0800)
When developing a script, it can be painful to understand why Git thinks
something is outside the current repo, if the current repo isn't what
the user thinks it is. Since this can be tricky to diagnose, especially
in cases like submodules or nested worktrees, let's give the user a hint
about which repository is offended about that path.

Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Acked-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pathspec.c
setup.c

index 128f27fcb7ae8c88b0f7143943ea8a7171a83c5d..166d255642db4c9b854dbd19018cbc854d1c4ca1 100644 (file)
@@ -439,7 +439,8 @@ static void init_pathspec_item(struct pathspec_item *item, unsigned flags,
                match = prefix_path_gently(prefix, prefixlen,
                                           &prefixlen, copyfrom);
                if (!match)
-                       die(_("%s: '%s' is outside repository"), elt, copyfrom);
+                       die(_("%s: '%s' is outside repository at '%s'"), elt,
+                           copyfrom, absolute_path(get_git_work_tree()));
        }
 
        item->match = match;
diff --git a/setup.c b/setup.c
index e2a479a64fa4076bad8eaf6cf0949d0ae263da9d..17814a080b8ed9660b1018f210a5d62770fcde89 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -121,7 +121,8 @@ char *prefix_path(const char *prefix, int len, const char *path)
 {
        char *r = prefix_path_gently(prefix, len, NULL, path);
        if (!r)
-               die(_("'%s' is outside repository"), path);
+               die(_("'%s' is outside repository at '%s'"), path,
+                   absolute_path(get_git_work_tree()));
        return r;
 }