Re: [PATCH v2 1/4] worktree: refactor infer_backlink() to use *strbuf
- From
shejialuo <shejialuo@gmail.com>
- Date
- Oct 7, 2024, 04:28 UTC
- Message-ID
- <ZwNjgvMbUKgpbP7O@ArchLinux>
- In-Reply-To
- <XzNC1BXk2OaIGmgas_MWKZ_ubpeR_kA19hNxmF76FLtgI_WfYrMOGEDEr5uqOETNPHTI_bA3qJE0R0eah4UTPXZUgeRjG7psN6ncDOdPXNA=@pm.me>
On Mon, Oct 07, 2024 at 04:19:22AM +0000, Caleb White wrote:
Show 32 quoted lines
> On Sunday, October 6th, 2024 at 23:12, shejialuo <shejialuo@gmail.com> wrote:
> > 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.