Artifact f1a31c962dfcc6ef26d356e7ec06db2aa060ddd9dd0d2e3b54d2894090685ec6:
- File
internal/stash/stash.go
-
2026-10-21 12:29:31
— part of check-in
[c314e928f8]
on branch feat/submanifest-reader
— fix(stash): stash a pending merge as fossil does
Save no longer refuses while a merge is pending. As fossil's stash save, it stashes each changed file against the content last written for it (mrid) and reverts only the stashed files, so vmerge is kept and the next commit records the merge parent. A file the merge added is not in the checked-out version, so its revert deletes it.
Apply now fails before writing anything when a stashed modified file is missing from disk, as fossil's pop fails with "no such file" and rolls back; this is what a merge-added file meets after the save.
In a sparse checkout the record-only merge outside the cone is left pending and unmaterialized, and the in-cone files round-trip. (user: [email protected], size: 24058) [annotate] [blame] [check-ins using]
- 2026-10-21 12:30:02 — part of check-in [15a47df65a] on branch feat/submanifest-reader — Merge branch 'fix/stash-pending-merge' into feat/submanifest-reader (user: [email protected], size: 24058) [annotate] [blame] [check-ins using]
-
2026-10-21 12:29:31
— part of check-in
[c314e928f8]
on branch feat/submanifest-reader
— fix(stash): stash a pending merge as fossil does