Skip to content
go-libfossil Check-in [84c7659789]
Login

Check-in [84c7659789]

Overview
Comment:docs(changelog): stash saves with a pending merge, as fossil does
Timelines: family | ancestors | descendants | both | main | trunk | feat/submanifest-reader
Files: files | file ages | folders
SHA3-256: 84c765978910fc3a4f2db08d92d1860abb2a0fd507d716c6970b1d6cb603976a
User & Date: [email protected] on 2026-10-21 12:30:19.000
Other Links: branch diff | manifest | tags
Context
2026-10-21
12:41
fix(stash): merge popped changes three ways and keep merged exec bits, as fossil does

Apply now does what fossil's stash_apply does when a stashed file changed since the stash: it merges the stashed change (pivot: the stash baseline) onto the file on disk with merge_3way, writing fossil's conflict markers and NAME-baseline/-original/-merge on conflict, an empty file for binary content, and reporting each conflict. Previously the stashed bytes were restored verbatim, losing the current change.

Save reverts a file with a pending merge to the checked-out version's executable and symlink bits, and records them in vfile, as fossil's revert does; the stash keeps the merged bits and the pop restores them. checkout.VersionPaths becomes VersionPerms to supply those bits.

The sparse stash-record-only conformance case now expects fossil's result: a file the merge took unchanged keeps the checked-out content after a stash round trip. check-in: 04e3ea8301 user: [email protected] tags: feat/submanifest-reader, main, trunk

12:30
docs(changelog): stash saves with a pending merge, as fossil does check-in: 84c7659789 user: [email protected] tags: feat/submanifest-reader, main, trunk
12:30
Merge branch 'fix/stash-pending-merge' into feat/submanifest-reader check-in: 15a47df65a user: [email protected] tags: feat/submanifest-reader, main, trunk
Changes