From: Jonathan Nieder <jrnieder@gmail.com>
To: Emily Shaffer <emilyshaffer@google.com>
Cc: git@vger.kernel.org, "brian m. carlson" <sandals@crustytoothpaste.net>
Subject: Re: [RFC PATCH v2] prefix_path: show gitdir when arg is outside repo
Date: Fri, 28 Feb 2020 11:58:05 -0800 [thread overview]
Message-ID: <20200228195805.GA190372@google.com> (raw)
In-Reply-To: <20200215010013.190528-1-emilyshaffer@google.com>
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@google.com>
> ---
> 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?
Thanks,
Jonathan
> }
>
> item->match = match;
> diff --git a/setup.c b/setup.c
> index 12228c0d9c..4ea7a0b081 100644
> --- 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;
> }
>
next prev parent reply other threads:[~2020-02-28 19:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-14 23:29 [RFC PATCH] prefix_path: show gitdir when arg is outside repo emilyshaffer
2020-02-15 0:02 ` brian m. carlson
2020-02-15 0:46 ` Emily Shaffer
2020-02-15 1:00 ` [RFC PATCH v2] " Emily Shaffer
2020-02-15 2:56 ` brian m. carlson
2020-02-28 19:58 ` Jonathan Nieder [this message]
2020-03-03 2:19 ` Emily Shaffer
2020-03-03 4:05 ` [PATCH] prefix_path: show gitdir if worktree unavailable Emily Shaffer
2020-03-03 17:06 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200228195805.GA190372@google.com \
--to=jrnieder@gmail.com \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=sandals@crustytoothpaste.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.