@matheusbsbs / matheus-bagliano / commits / e0020b2f82
Fork 0

prefix_path: show gitdir when arg is outside repo

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>

Emily Shaffer committed Feb 14, 2020 at 17:00 UTC e0020b2f82910f50bc697d86aff70c3796fbdc41
2 files changed +4 -2
pathspec.c
+2 -1
@@ -439,7 +439,8 @@ static void init_pathspec_item(struct pathspec_item *item, unsigned flags,
439 match = prefix_path_gently(prefix, prefixlen,
440 &prefixlen, copyfrom);
441 if (!match)
442 - die(_("%s: '%s' is outside repository"), elt, copyfrom);
442 + die(_("%s: '%s' is outside repository at '%s'"), elt,
443 + copyfrom, absolute_path(get_git_work_tree()));
444 }
445
446 item->match = match;
setup.c
+2 -1
@@ -121,7 +121,8 @@ char *prefix_path(const char *prefix, int len, const char *path)
121 {
122 char *r = prefix_path_gently(prefix, len, NULL, path);
123 if (!r)
124 - die(_("'%s' is outside repository"), path);
124 + die(_("'%s' is outside repository at '%s'"), path,
125 + absolute_path(get_git_work_tree()));
126 return r;
127 }
128