Skip to content
go-libfossil Check-in [da7c8a19cd]
Login

Check-in [da7c8a19cd]

Overview
Comment:Merge branch 'fix/update-undo' into feat/submanifest-reader
Timelines: family | ancestors | descendants | both | main | trunk | feat/submanifest-reader
Files: files | file ages | folders
SHA3-256: da7c8a19cd578b0ea34d6323f3da504875047c27398b1dacb0c3f464e0cd4d1b
User & Date: [email protected] on 2026-10-19 16:25:29.000
Other Links: branch diff | manifest | tags
Context
2026-10-19
18:27
Merge branch 'fix/stash-undo-followups' into feat/submanifest-reader check-in: 22101b521f user: [email protected] tags: feat/submanifest-reader, main, trunk
16:51
Merge branch 'feat/submanifest-reader' into feat/cones

Update now follows the target's renames and saves undo state. A file outside the cone stays a record-only step: never written, chmodded, backed up or read for undo. A local edit that a rename would carry out of the cone is refused, naming the cone. check-in: 74aa290eda user: [email protected] tags: feat/submanifest-reader, main, trunk

16:29
Merge branch 'feat/submanifest-reader' into fix/stash-undo-followups

# Conflicts: # internal/undo/undo.go check-in: d6ac19e580 user: [email protected] tags: feat/submanifest-reader, main, trunk

16:25
Merge branch 'fix/update-undo' into feat/submanifest-reader check-in: da7c8a19cd user: [email protected] tags: feat/submanifest-reader, main, trunk
16:10
fix(checkout): save undo state in Update, as fossil does

Update saved no undo state, so nothing could reverse it. It now reads the file of every step that writes or removes one before writing, as fossil's update calls undo_save, and saves those files with copies of vfile and vmerge and the checked-out version in the same transaction that moves the checkout to the target. If a write fails partway the files are put back, as fossil's undo_rollback does.

Checkout.Undo and Checkout.Redo (internal and public) swap that state back and forth and keep checkout-hash naming the restored version. The undo package gains ReadFile, SaveTx and RestoreFiles, and its undo table now has fossil's schema (isExe, unique pathname, rowid order, the executable bit read from disk), so fossil undo reverses a go-libfossil update and Checkout.Undo reverses fossil update; fossil 2.28 interop tests check both. Under js/wasm, which has no undo package, Update saves nothing.

Tracked in #446 check-in: 294a537880 user: [email protected] tags: feat/submanifest-reader, main, trunk

15:59
Merge branch 'fix/update-renames' into feat/submanifest-reader

# Conflicts: # CHANGELOG.md check-in: 5d0a52d706 user: [email protected] tags: feat/submanifest-reader, main, trunk

Changes