From e710e7d66956cb9b12b98e7cd61243c2b12f5d24 Mon Sep 17 00:00:00 2001 From: Cobb Date: Fri, 17 Apr 2026 11:31:48 -0700 Subject: [PATCH] ci(upstream-sync): skip LFS smudge to unblock fetch step The repo's .gitattributes (inherited from upstream) routes certain paths through git-lfs. Gitea's LFS store doesn't hold those blobs, so on checkout the smudge filter tries to download them, 404s, and leaves git in a state where subsequent 'git fetch' calls appear to succeed but don't actually populate refs. Run 89 was bitten by this: checkout 'succeeded' with an LFS smudge fatal, then 'git fetch upstream develop' ran silently, 'git merge --ff-only upstream/develop' failed because upstream/develop ref didn't exist locally, and the workflow logged a misleading warning blaming a divergence that wasn't there. Setting GIT_LFS_SKIP_SMUDGE=1 keeps LFS pointers as-is. We don't need image bytes to ff-merge and diff refs. --- .gitea/workflows/upstream-sync.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitea/workflows/upstream-sync.yml b/.gitea/workflows/upstream-sync.yml index d3031c21ec..1fe9d1adfe 100644 --- a/.gitea/workflows/upstream-sync.yml +++ b/.gitea/workflows/upstream-sync.yml @@ -17,6 +17,13 @@ on: jobs: sync-main: runs-on: ubuntu-latest + env: + # The repo's .gitattributes (inherited from upstream) routes the + # screenshots/ tree through git-lfs. Gitea's LFS store doesn't hold + # those blobs, so on checkout the smudge filter tries to 404-download + # them and wedges git state for subsequent fetches. We don't need + # the image bytes here — leave LFS pointers as-is. + GIT_LFS_SKIP_SMUDGE: '1' steps: - name: Checkout main @@ -24,6 +31,7 @@ jobs: with: ref: main fetch-depth: 0 + lfs: false # Built-in token Gitea hands us — scoped to this repo, has push. token: ${{ secrets.GITEA_TOKEN }}