{"version":"2.1.247","anchor":"clearer-failure-when-a-committed-gitattributes-is-a-symlink-","canonical_anchor":"clearer-failure-when-a-committed-gitattributes-is-a-symlink-","heading":"Clearer failure when a committed .gitattributes is a symlink, and correct attributes for linked worktrees","tier":"notice","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247\/e\/clearer-failure-when-a-committed-gitattributes-is-a-symlink-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247","markdown":"### Clearer failure when a committed .gitattributes is a symlink, and correct attributes for linked worktrees\n\nSnapshots read git attributes from the right place in linked worktrees, and explain symlinked .gitattributes failures.\n\n**What**\n\nSnapshotting now reads `.git\/info\/attributes` from the repository's shared git directory rather than the per-worktree one, which is the right location when you work in a linked worktree. When filter attributes cannot be read from a commit because the installed git follows a committed symlinked `.gitattributes` on disk, it now stops with an explicit message telling you to update git.\n\n**Details**\n\n- The message names the cause and the remedy: git older than 2.32, or a version this build cannot read.\n- The attribute read is isolated: the `check-attr` call runs with a per-run object directory and with alternate object directories emptied, so it cannot disturb the repository.\n- Any blob rewritten during the read is re-staged with `update-index --cacheinfo`.\n\n**Evidence**\n\n`a committed .gitattributes is a symbolic link, which the installed git (older than 2.32, or of a version this build cannot read) follows on disk: update git, then retry`\n\n- Area: Elsewhere\n- Names: `--cacheinfo`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}