From 543482c919d0ec9acd27b9510edecb74dcb1ad73 Mon Sep 17 00:00:00 2001 From: Aric Camarata Date: Mon, 14 Sep 2026 19:06:09 -0400 Subject: [PATCH] fix: exempt the Tauri icons from an LFS filter this repo does not use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Coverage Diff failed on this PR: error: Your local changes to the following files would be overwritten by checkout: desktop/src-tauri/icons/128x128.png desktop/src-tauri/icons/128x128@2x.png desktop/src-tauri/icons/32x32.png Please commit your changes or stash them before you switch branches. Nothing modified those files. The job checks out the base ref to compare coverage, and git refused. .gitattributes declares `*.png filter=lfs diff=lfs merge=lfs -text` under a comment saying these types "should only exist in GitHub Releases, never tracked in git history". But this repo does not use LFS at all: there is no .lfsconfig, and all 32 tracked PNGs are real blobs — none is a pointer. On a runner that HAS git-lfs installed (every GitHub-hosted runner does) the clean filter reports a tracked PNG as locally modified, so any job that switches refs fails. This is latent for all 32 PNGs; this PR is simply the first in a while to change one. Exempt the Tauri icon directory, which is where it actually matters: those files must be tracked because tauri.conf.json's bundle.icon reads them from the working tree at build time, so "keep it in a Release instead" is not available. Committed locally with git-lfs absent, so the blobs are genuine image data — the Windows and macOS builds that consumed them both passed and uploaded real artifacts, which would not be true of pointer files. The wider question — that `filter=lfs` does not prevent anything and only breaks checkouts when LFS is present — is left for the org-wide .gitattributes owner. --- .gitattributes | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitattributes b/.gitattributes index 4f5febeb8..d7b4f89d1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,3 +15,13 @@ *.dmg filter=lfs diff=lfs merge=lfs -text *.apk filter=lfs diff=lfs merge=lfs -text *.ipa filter=lfs diff=lfs merge=lfs -text + +# Exemption: the Tauri desktop icons MUST be tracked in git — the build reads them +# from the working tree (tauri.conf.json bundle.icon), so they cannot live only in +# a Release. The rules above declare filter=lfs, but this repo does NOT use LFS: +# there is no .lfsconfig and all 32 tracked PNGs are real blobs, not pointers. +# On a runner that HAS git-lfs (every GitHub-hosted runner does) the clean filter +# then reports these files as locally modified, and any job that switches refs +# fails with "Your local changes to the following files would be overwritten by +# checkout" — which is exactly how Coverage Diff broke on this PR. +desktop/src-tauri/icons/** -filter -diff -merge -text