Re: [PATCH v2 1/4] worktree: refactor infer_backlink() to use *strbuf
From: shejialuo <hidden>
Date: 2024-10-07 04:28:45
On Mon, Oct 07, 2024 at 04:19:22AM +0000, Caleb White wrote:
On Sunday, October 6th, 2024 at 23:12, shejialuo [off-list ref] wrote:quoted
That's not correct. It is true that the contents can be NULL and `backlink` could be filled with the infer_backlink. But do you notice that if `backlink` was filled with the infer_backlink, it will jump to the "done" label.This is not correct, if backlink is filled with `infer_backlink` it continues on with the processing. I have made this more clear: dotgit_contents = xstrdup_or_null(read_gitfile_gently(realdotgit.buf, &err)); if (dotgit_contents) { if (is_absolute_path(dotgit_contents)) { strbuf_addstr(&backlink, dotgit_contents); } else { strbuf_addbuf(&backlink, &realdotgit); strbuf_strip_suffix(&backlink, ".git"); strbuf_addstr(&backlink, dotgit_contents); } } 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; }
Thanks, you are correct here. We cannot use "BUG" here. And I think currently this is OK.