mirror of
https://github.com/actions/checkout.git
synced 2026-08-08 19:30:07 +08:00
Problem On persistent/self-hosted runners that reuse a working directory across jobs, LFS-tracked files can be left as pointer files instead of real content when a lfs: false checkout precedes a lfs: true checkout of the same repo. Sequence that triggers it: 1. A lfs: false run sets GIT_LFS_SKIP_SMUDGE=1, so git checkout writes LFS files to the working tree as pointers. 2. A later lfs: true run on the same worktree fetches the objects into .git/lfs, but git checkout sees the tree already at the target commit and does not re-smudge the already-present pointer files. Result: the objects are in the local cache, but the working tree still contains pointers. The action relies on the smudge filter firing during git checkout to materialize content — which holds on a clean tree (GitHub-hosted runners) but not on a reused one. Related: actions/checkout#270 |
||
|---|---|---|
| .. | ||
| git-auth-helper.test.ts | ||
| git-command-manager.test.ts | ||
| git-directory-helper.test.ts | ||
| git-version.test.ts | ||
| github-api-helper.test.ts | ||
| input-helper.test.ts | ||
| modify-work-tree.sh | ||
| override-git-version.cmd | ||
| override-git-version.sh | ||
| ref-helper.test.ts | ||
| retry-helper.test.ts | ||
| unsafe-pr-checkout-helper.test.ts | ||
| url-helper.test.ts | ||
| verify-basic.sh | ||
| verify-clean.sh | ||
| verify-fetch-filter.sh | ||
| verify-fetch-tags.sh | ||
| verify-lfs.sh | ||
| verify-no-unstaged-changes.sh | ||
| verify-side-by-side.sh | ||
| verify-sparse-checkout-non-cone-mode.sh | ||
| verify-sparse-checkout.sh | ||
| verify-submodules-false.sh | ||
| verify-submodules-recursive.sh | ||
| verify-submodules-true.sh | ||
| verify-worktree.sh | ||