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

Re: [PATCH v2] Simplify handling of setup_git_directory_gently() failure cases.

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 26, 2018, 22:22 UTC
Message-ID
<xmqqftukq66o.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20181219155928.GE14802@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 33 quoted lines
> On Tue, Dec 18, 2018 at 12:54:02PM -0800, Erin Dahlgren wrote:
> ...
>> GIT_DIR_HIT_MOUNT_POINT. I'm not sure how important of a guarantee it
>> is, but we should respect what's documented.
>
> Yeah, agreed.
>
> Another benefit of avoiding the early return is that we hit the cleanup
> code at the end of the function. That saves us having to release "dir"
> here. I assume we don't have to care about "gitdir" in these cases, but
> hitting the cleanup code means we don't even have to think about it.
>
> Over in:
>
>   https://public-inbox.org/git/20181219154853.GC14802@sigill.intra.peff.net/
>
> I suggested adding more cleanup to that block, too (though I _think_ in
> these cases it would also be a noop, it's again nice to not have to
> worry about it).
>
>> Side note: One of the secondary goals of my patch was to make it
>> really obvious that neither the GIT_DIR_HIT_CEILING nor the
>> GIT_DIR_HIT_MOUNT_POINT case can get us into the block protected by
>> (startup_info->have_repository || getenv(GIT_DIR_ENVIRONMENT)). With
>> your suggestion (and it's a fair one) I don't think that's feasible
>> without more significant refactoring. Should I just settle with a
>> comment that explains this?
>
> Yeah, I think a comment would probably be sufficient. Though we could
> also perhaps make the two cases (i.e., we found a repo or not) more
> clear. Something like:
>
>   if (!*nongit_ok || !*nongit_ok) {
WTH is (A || A)?
Show 12 quoted lines
> 	startup_info->have_repository = 1;
> 	startup_info->prefix = prefix;
> 	if (prefix) ...etc...
>   } else {
> 	start_info->have_repository = 0;
> 	startup_info->prefix = NULL;
> 	setenv(GIT_PREFIX_ENVIRONMENT, "", 1);
>   }
>
> That may introduce some slight repetition, but I think it's probably
> clearer to deal with the cases separately (and it saves earlier code
> from make-work like setting prefix=NULL when there's no repo).
Sounds good.
Thanks both.
Previous: Jeff KingNext: Jeff King
Message 10 of 19 in “Simplify handling of setup_git_directory_gently() failure cases.”
  1. Simplify handling of setup_git_directory_gently() failure cases.Erin Dahlgren, Dec 13, 2018
  2. Johannes SchindelinDec 14, 2018
  3. Erin DahlgrenDec 16, 2018
  4. Simplify handling of setup_git_directory_gently() failure cases.Erin Dahlgren, Dec 16, 2018
  5. Johannes SchindelinDec 18, 2018
  6. Erin DahlgrenDec 18, 2018
  7. Jeff KingDec 18, 2018
  8. Erin DahlgrenDec 18, 2018
  9. Jeff KingDec 19, 2018
  10. Junio C HamanoDec 26, 2018
  11. Jeff KingDec 27, 2018
  12. Erin DahlgrenDec 27, 2018
  13. Jeff KingJan 3, 2019
  14. Simplify handling of setup_git_directory_gently() failure cases.Erin Dahlgren, Dec 27, 2018
  15. Jeff KingJan 3, 2019
  16. Junio C HamanoJan 3, 2019
  17. Jeff KingJan 4, 2019
  18. Erin DahlgrenJan 5, 2019
  19. Jeff KingJan 6, 2019

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.