All of lore.kernel.org
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: emilyshaffer@google.com
Cc: git@vger.kernel.org
Subject: Re: [RFC PATCH] prefix_path: show gitdir when arg is outside repo
Date: Sat, 15 Feb 2020 00:02:30 +0000	[thread overview]
Message-ID: <20200215000230.GA6134@camp.crustytoothpaste.net> (raw)
In-Reply-To: <20200214232933.243520-1-emilyshaffer@google.com>

[-- Attachment #1: Type: text/plain, Size: 2414 bytes --]

On 2020-02-14 at 23:29:33, emilyshaffer@google.com wrote:
> From: Emily Shaffer <emilyshaffer@google.com>
> 
> 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>
> ---
> This one comes from a user feature request. This user is running some
> Git client commands on a build machine somewhere and finding it hard to
> reason about the cause of the "outside repo" error.
> 
> I see two arguments:
> 
> For:
>  - A user checking their own `pwd` might still not come to the same
>    conclusion Git does about the current repo, if their filesystem is in
>    some weird state
>  - This warning is intended for human eyes (die(), stderr) so it's reasonable
>    to give some info to make the human's life easier
> 
> Against:
>  - It's chatty, especially given the absolute directory. This may be a
>    pretty common mistake ('git add' with thumbfingers?) so it could be
>    chatty, frequently - not great.
>    (Sidebar: Just including the relative directory is really not very
>    useful - since you're still left thinking, "relative to where?")

I'm very much in favor of this patch.  I recently ran into a similar
problem with Git LFS with path canonicalization and having both paths in
the error message made it immediately obvious what the problem was.

> diff --git a/pathspec.c b/pathspec.c
> index 128f27fcb7..5d661df5cf 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_dir()));

Do we want the top level directory in these two spots instead of the git
directory?  I suspect that might be more helpful, since it looks like
we're dealing with working tree files.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 868 bytes --]

  reply	other threads:[~2020-02-15  0:02 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 [this message]
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
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=20200215000230.GA6134@camp.crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    /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.