git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: shejialuo <shejialuo@gmail.com>
To: Caleb White <cdwhite3@pm.me>
Cc: Eric Sunshine <sunshine@sunshineco.com>, git@vger.kernel.org
Subject: Re: [PATCH v2 1/4] worktree: refactor infer_backlink() to use *strbuf
Date: Mon, 7 Oct 2024 12:19:25 +0800	[thread overview]
Message-ID: <ZwNhTdAhJb-KQBav@ArchLinux> (raw)
In-Reply-To: <7HnZc9JpxZXOAZFD6AO0MdhWccomQBZJmS_IzwiA_-YpmFlQPAjeMJBvP9uBI_6s6-crP3SXWZTrErwj918xIuOAo7TmzqEZek8FV0IMhrg=@pm.me>

On Mon, Oct 07, 2024 at 04:01:43AM +0000, Caleb White wrote:
> On Sunday, October 6th, 2024 at 22:56, shejialuo <shejialuo@gmail.com> wrote:
> > The reason why I don't think we need to check the "err" variable is that
> > the "git_contents" and "err" is relevant. If "git_contents" is not NULL,
> > the "err" must be zero unless there are bugs in "read_gitfile_gently".
> > So, if we already check "git_contents", why do we need to check again
> > for "err"?
> 
> There are two other error conditions we check, and one of them we try
> to find the inferred backlink (so it is not a failure path):
> 
> ```
> } else if (err == READ_GITFILE_ERR_NOT_A_FILE) {
> 	fn(1, realdotgit.buf, _("unable to locate repository; .git is not a file"), cb_data);
> 	goto done;
> } else if (err == READ_GITFILE_ERR_NOT_A_REPO) {
> 	if (!infer_backlink(realdotgit.buf, &backlink)) {
> 		fn(1, realdotgit.buf, _("unable to locate repository; .git file does not reference a repository"), cb_data);
> 		goto done;
> 	}
> } else if (err) {
> 	fn(1, realdotgit.buf, _("unable to locate repository; .git file broken"), cb_data);
> 	goto done;
> }
> 
> ```

I am sorry that my words make you not clear here. I want to express that
if "git_contents" is not NULL and there is no need for us to check
"err". This means we could use the following flows:

    if (git_contents && !err) {
        ...
    } else if (err == xxx) {
        ...
    }

However, from my perspective, the way proposed by Eric where we could
use "BUG" is more robust. Because the current method assumes that
"read_gitfile_gently" works as we want.

Thanks,
Jialuo

  reply	other threads:[~2024-10-07  4:19 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-06  6:00 [PATCH v2 0/4] Link worktrees with relative paths Caleb White
2024-10-06  6:00 ` [PATCH v2 1/4] worktree: refactor infer_backlink() to use *strbuf Caleb White
2024-10-06 15:09   ` shejialuo
2024-10-06 15:13     ` Kristoffer Haugsbakk
2024-10-06 18:41     ` Eric Sunshine
2024-10-07  2:26       ` Caleb White
2024-10-07  4:12         ` shejialuo
2024-10-07  4:19           ` Caleb White
2024-10-07  4:28             ` shejialuo
2024-10-07  4:31               ` Caleb White
2024-10-07  3:56       ` shejialuo
2024-10-07  4:01         ` Caleb White
2024-10-07  4:19           ` shejialuo [this message]
2024-10-06 23:47     ` Caleb White
2024-10-06 18:16   ` Eric Sunshine
2024-10-07  2:42     ` Caleb White
2024-10-07  3:26       ` Eric Sunshine
2024-10-07  3:28         ` Caleb White
2024-10-06  6:01 ` [PATCH v2 2/4] worktree: link worktrees with relative paths Caleb White
2024-10-06 11:05   ` Eric Sunshine
2024-10-06 22:37     ` Caleb White
2024-10-06 15:37   ` shejialuo
2024-10-06 23:57     ` Caleb White
2024-10-07  3:45       ` shejialuo
2024-10-07  4:02         ` Eric Sunshine
2024-10-07 16:59         ` Caleb White
2024-10-06  6:01 ` [PATCH v2 3/4] worktree: sync worktree paths after gitdir move Caleb White
2024-10-06 11:12   ` Eric Sunshine
2024-10-06 22:41     ` Caleb White
2024-10-06 22:48       ` Eric Sunshine
2024-10-06 23:13         ` Caleb White
2024-10-06 23:27           ` Eric Sunshine
2024-10-06  6:01 ` [PATCH v2 4/4] worktree: prevent null pointer dereference Caleb White
2024-10-06 11:24   ` Eric Sunshine
2024-10-06 23:03     ` Caleb White
2024-10-06 23:24       ` Eric Sunshine
2024-10-07  3:09         ` Caleb White
2024-10-06  6:18 ` [PATCH v2 0/4] Link worktrees with relative paths Eric Sunshine

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=ZwNhTdAhJb-KQBav@ArchLinux \
    --to=shejialuo@gmail.com \
    --cc=cdwhite3@pm.me \
    --cc=git@vger.kernel.org \
    --cc=sunshine@sunshineco.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).