Artifact 119a2c0efcc651f4a797cb5707de2ac2c09bfe503f692cfc760f0052ce63c9fa:
- File
internal/checkout/perm_fossilbin_test.go
-
2026-10-19 18:27:23
— part of check-in
[8cad365e82]
on branch feat/submanifest-reader
— fix(checkout): write symlink entries as fossil does, so a fresh checkout extracts
Since the scan began recording islink and chnged 7/9, Create followed by Extract without Force failed on any repository with an "l" file: the file was missing, the scan read it as UNLINK, and the missing-file skip only covered plain edits.
Extract and Update now write a symlink entry as fossil's vfile_to_disk does: as a symlink to the blob content while allow-symlinks is on and the storage can make links, otherwise as a plain file holding the target. A symlink is deleted before a file is written over it, and setMergedMode leaves symlinks and directories alone, as file_setexe does. Extract's missing-file skip covers mode changes too, so the first Extract after Create plays fossil's open whatever the entry.
With allow-symlinks off, fossil itself reports such a file UNLINK and its checkout refuses without --force; Extract keeps that behavior, and an interop test pins it against fossil's open in both modes.
ScanENotFile no longer refuses a directory at a pending add or removal recorded with chnged=0, matching the else-if in vfile_check_signature.
Tracked in #449 (user: [email protected], size: 7880) [annotate] [blame] [check-ins using]
-
2026-10-19 18:29:32
— part of check-in
[6708292b55]
on branch feat/submanifest-reader
— Merge branch 'fix/scan-symlink-extract' into feat/submanifest-reader
# Conflicts: # internal/checkout/update.go (user: [email protected], size: 7880) [annotate] [blame] [check-ins using]
-
2026-10-21 21:20:46
— part of check-in
[7244496a09]
on branch main
— Merge pull request #437 from danmestas/feat/submanifest-reader
feat: sub-manifest trees and sparse cones (draft-fossil-submanifests-00, draft-fossil-sparse-cone-00) (user: [email protected], size: 7880) [annotate] [blame] [check-ins using]
-
2026-10-19 18:27:23
— part of check-in
[8cad365e82]
on branch feat/submanifest-reader
— fix(checkout): write symlink entries as fossil does, so a fresh checkout extracts