On Wed, Nov 13, 2024 at 08:36:16AM +0100, Patrick Steinhardt wrote: > On Sun, Nov 10, 2024 at 08:10:27PM +0800, shejialuo wrote: > > @@ -3572,8 +3579,30 @@ static int files_fsck_refs_content(struct ref_store *ref_store, > > > > report.path = target_name; > > > > - if (S_ISLNK(iter->st.st_mode)) > > + if (S_ISLNK(iter->st.st_mode)) { > > + const char* relative_referent_path = NULL; > > Nit: the asterisk should stick with the variable name. > I will improve this in the next version. > > + ret = fsck_report_ref(o, &report, > > + FSCK_MSG_SYMLINK_REF, > > + "use deprecated symbolic link for symref"); > > + > > + strbuf_add_absolute_path(&abs_gitdir, ref_store->gitdir); > > + strbuf_normalize_path(&abs_gitdir); > > + if (!is_dir_sep(abs_gitdir.buf[abs_gitdir.len - 1])) > > + strbuf_addch(&abs_gitdir, '/'); > > + > > + strbuf_add_real_path(&ref_content, iter->path.buf); > > + skip_prefix(ref_content.buf, abs_gitdir.buf, > > + &relative_referent_path); > > + > > + if (relative_referent_path) > > + strbuf_addstr(&referent, relative_referent_path); > > + else > > + strbuf_addbuf(&referent, &ref_content); > > + > > + ret |= files_fsck_symref_target(o, &report, &referent, 1); > > goto cleanup; > > + } > > I wonder whether this logic works as expected with per-worktree symbolic > refs which are a symlink. On the other hand I wonder whether those work > as expected in the first place. Probably not. *shrug* > > In any case, it would be nice to have a test for this. > Correct, I have ignored because I add worktree support in the later version. Let me add a new test to verify this. > Patrick Thanks, Jialuo