git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] pathspec: give better message for submodule related pathspec error

From
Jeff King <peff@peff.net>
Date
Dec 28, 2016, 05:58 UTC
Message-ID
<20161228055826.xu2gclwkvisbft6o@sigill.intra.peff.net>
In-Reply-To
<20161228000559.17842-1-sbeller@google.com>
On Tue, Dec 27, 2016 at 04:05:59PM -0800, Stefan Beller wrote:
> Every once in a while someone complains to the mailing list to have
> run into this weird assertion[1].

If people are running into it, it definitely should not be an assert, nor a die("BUG"). It should be a regular die(), which your patch does. So this is definitely a good step, even if the ultimate goal may be to handle the case more gracefully (I say that without having even read the background, or knowing what the right handling would be).

But...
Show 15 quoted lines
> diff --git a/pathspec.c b/pathspec.c
> index 22ca74a126..d522f43331 100644
> --- a/pathspec.c
> +++ b/pathspec.c
> @@ -313,8 +313,11 @@ static unsigned prefix_pathspec(struct pathspec_item *item,
>  	}
>  
>  	/* sanity checks, pathspec matchers assume these are sane */
> -	assert(item->nowildcard_len <= item->len &&
> -	       item->prefix         <= item->len);
> +	if (item->nowildcard_len <= item->len &&
> +	    item->prefix         <= item->len)
> +		die (_("Path leads inside submodule '%s', but the submodule "
> +		       "was not recognized, i.e. not initialized or deleted"),
> +		       ce->name);

Don't you need to flip the logic here? An assert() triggers when the condition is not true, but an "if" does the opposite. So "assert(X)" should always become "if (!X) die(...)".

-Peff
Previous: Stefan BellerNext: Stefan Beller
Message 2 of 5 in “pathspec: give better message for submodule related pathspec error”
  1. pathspec: give better message for submodule related pathspec errorStefan Beller, Dec 28, 2016
  2. Jeff KingDec 28, 2016
  3. [PATCHv2] pathspec: give better message for submodule related pathspec errorStefan Beller, Dec 28, 2016
  4. Brandon WilliamsDec 28, 2016
  5. Brandon WilliamsDec 28, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.