Artifact 1d916c7eab88a80c475338c350cdbddb5c14be56f80f21008ff2468afbceb349:
- File
internal/checkout/update_renames_test.go
-
2026-10-19 15:55:02
— part of check-in
[c88a801cf9]
on branch feat/submanifest-reader
— fix(checkout): follow renames between versions in Update, as fossil does
Update matched files by name, so a local edit to a file the target renamed was left behind as an untracked file under the old name while the new name got the target's content.
path.NameChanges ports fossil's find_filename_changes with revOK: the renames along the primary path from the checkout's version up to the common ancestor and down to the target, a rename on the way up taken backwards. Update uses it as update.c does: a changed file the target renamed is matched to the target's file under its new name. A merge is written under the new name and the old name removed; when the target only renamed the file, nothing is written and the edit stays under the old name, untracked, as in fossil, which Unmerged now reports. A local rename is not followed, as in fossil.
fossil 2.28 interop tests compare both directions: a target-side rename and edit, a target-side pure rename, a local rename of a file the target edited, and a rename on the checkout's own branch followed backwards to a sibling.
Tracked in #445 (user: [email protected], size: 4751) [annotate] [blame] [check-ins using]
-
2026-10-19 15:59:12
— part of check-in
[5d0a52d706]
on branch feat/submanifest-reader
— Merge branch 'fix/update-renames' into feat/submanifest-reader
# Conflicts: # CHANGELOG.md (user: [email protected], size: 4751) [annotate] [blame] [check-ins using]
-
2026-10-19 16:29:46
— part of check-in
[d6ac19e580]
on branch feat/submanifest-reader
— Merge branch 'feat/submanifest-reader' into fix/stash-undo-followups
# Conflicts: # internal/undo/undo.go (user: [email protected], size: 4751) [annotate] [blame] [check-ins using]
-
2026-10-19 16:51:42
— part of check-in
[74aa290eda]
on branch feat/submanifest-reader
— 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. (user: [email protected], size: 4751) [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: 4751) [annotate] [blame] [check-ins using]
-
2026-10-19 15:55:02
— part of check-in
[c88a801cf9]
on branch feat/submanifest-reader
— fix(checkout): follow renames between versions in Update, as fossil does