{"version":"2.1.239","anchor":"directory-sync-skips-files-under-a-git-content-filter","canonical_anchor":"directory-sync-skips-files-under-a-git-content-filter","heading":"Directory sync skips files under a git content filter","tier":"notice","area":"Directory Sync","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239\/e\/directory-sync-skips-files-under-a-git-content-filter","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239","markdown":"### Directory sync skips files under a git content filter\n\nDirectory sync now skips files under a git content filter and tells you the reason.\n\n**What**\n\nSyncing a directory now consults `git check-attr` to see whether each file sits under a git content filter, and leaves those files behind rather than copying them. Skipped files are reported with the reason `content_filter`, or `attributes_unreadable` when the file's git attributes cannot be read at all, which is handled the same way as the other outcomes where the attribute store cannot be consulted. Failure reporting and pull statistics were extended to match, so a sync now says more precisely what it did and why.\n\n**Details**\n\n- The content filter check runs at both stages of a sync: the initial file inventory and the pull step that fetches file contents.\n- Sync failures now distinguish `version_unsupported`, meaning the git version in use cannot do the check, and `aborted` from a plain timeout, so a stalled sync is no longer conflated with an unsupported or cancelled one.\n- Retries after a failure can now back off exponentially rather than retrying at a fixed interval.\n- Pull statistics gained counters for content-filtered files, for copies that were kept, and for replacements made without keeping a copy.\n- Apply results additionally report replaced and removed counts, the overlay status and head, and a reason when the file manifest is rejected.\n\n**Evidence**\n\n`content_filter`, `version_unsupported`\n\n- Area: Directory Sync\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 3\/5"}