On Fri, Feb 28, 2020 at 11:58:05AM -0800, Jonathan Nieder wrote: > Hi, > > Emily Shaffer wrote: > > > 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@xxxxxxxxxx> > > --- > > pathspec.c | 3 ++- > > setup.c | 3 ++- > > 2 files changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/pathspec.c b/pathspec.c > > index 128f27fcb7..166d255642 100644 > > --- a/pathspec.c > > +++ b/pathspec.c > > @@ -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())); > > This is producing segfaults when run by magit. Reproduction recipe: > > cd .git > git ls-files .. > > Expected result: > > fatal: ..: '..' is outside repository > > Actual result: > > Segmentation fault > > Does this need an extra case to handle when there is no work tree? Ah, I see it. You're right. In that case I'll fall back on the git dir. Will hopefully have a patch along today. Thanks for reporting it. - Emily