Artifact c381a4d3edb8bc3d8b50ad0f16b180ddcbf71178c26dbdbfcb4eec1a39ec1bf5:
- File
internal/checkout/types.go
-
2026-10-18 22:16:06
— part of check-in
[2d2e62d420]
on branch feat/submanifest-reader
— fix(checkout): scan missing files and mode changes as fossil does
Port the remaining branches of fossil's vfile_check_signature. A missing file is marked changed with mtime -1, a removed file is marked changed, and the permission half sets chnged 6-9 for exec-bit and symlink changes (returning to 0 when undone), honouring the allow-symlinks setting: off, a symlink is seen as what it points to; on, as itself, its content its target's name.
Status reports the mode changes as fossil's changes command labels them (executable, symlink, unexec, unlink). Commit records the permission it finds on disk, l included, with a symlink's target as its content. Where the storage has no file modes (MemStorage) or on Windows, the recorded permissions are kept, as fossil on Windows keeps them. ScanENotFile now refuses a non-file where a tracked file belongs, and merge scans with it as fossil's does. Extract still writes a missing file without Force.
Interop tests run the same edits through fossil changes and go-libfossil status on one checkout, in both orders and with allow-symlinks on and off, and compare a commit's F cards with fossil's.
Tracked in #449 (user: [email protected], size: 7503) [annotate] [blame] [check-ins using]
- 2026-10-19 02:00:58 — part of check-in [ef787892fe] on branch feat/submanifest-reader — Merge branch 'fix/scan-missing-perms' into feat/submanifest-reader (user: [email protected], size: 7503) [annotate] [blame] [check-ins using]
-
2026-10-18 22:16:06
— part of check-in
[2d2e62d420]
on branch feat/submanifest-reader
— fix(checkout): scan missing files and mode changes as fossil does