Artifact 0a5b4fdaef1c6150b5feee8ff44c81c02a4cd18a884d347d988de212c6983fd0:
- File
internal/checkout/update.go
-
2026-10-19 18:49:29
— part of check-in
[f373c9a8ae]
on branch feat/submanifest-reader
— fix(checkout): Update decides the cone before renames, and never merges symlinks
A file outside a sparse checkout's cone is never on disk, so it read as missing, hence changed, and followed the target's rename; any upstream rename outside the cone then refused the update. It is now classified before renames are followed and matched by name: a rename outside the cone moves only the record, one into the cone writes the file under its new name, and an unedited file renamed out of it leaves the disk.
A symlink edited locally and changed by the target was merged through the link, writing conflict markers into the file it points at. As fossil's update does, it is now a conflict with nothing written, listed in UpdateResult.Unmerged; a rename still removes the old name. (user: [email protected], size: 29798) [annotate] [blame] [check-ins using]
- 2026-10-19 23:44:16 — part of check-in [44ac676efe] on branch feat/submanifest-reader — Merge branch 'fix/update-cone-symlink' into feat/submanifest-reader (user: [email protected], size: 29798) [annotate] [blame] [check-ins using]
- 2026-10-20 01:30:07 — part of check-in [c7a321a35d] on branch feat/submanifest-reader — Merge branch 'feat/submanifest-reader' into fix/revert-swap-chain (user: [email protected], size: 29798) [annotate] [blame] [check-ins using]
-
2026-10-19 18:49:29
— part of check-in
[f373c9a8ae]
on branch feat/submanifest-reader
— fix(checkout): Update decides the cone before renames, and never merges symlinks