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

Check-in [cb003db2f4]

Overview
Comment:test(sync): cover links in later rounds and push+pull req-links; match project code case-insensitively
Timelines: family | ancestors | trunk | feat/425-share-links
Files: files | file ages | folders
SHA3-256: cb003db2f499369d344965748f4005e8df25485bd7feeac21fe28e191ccc6668
User & Date: [email protected] on 2026-10-13 14:56:35.000
Other Links: branch diff | manifest | tags
Context
2026-10-13
14:56
test(sync): cover links in later rounds and push+pull req-links; match project code case-insensitively leaf check-in: cb003db2f4 user: [email protected] tags: trunk, feat/425-share-links
14:49
feat(sync): add share-links mode for pragma req-links and link

sync-protocol-01 Section 9.5 makes share-links mode OPTIONAL. With SyncOpts.ShareLinks a pulling session sends pragma req-links in its first request, as fossil's --share-links does, unless SyncOpts.ProjectCode names another project. It keeps each pragma link URL ARG MTIME as config link:URL = ARG, defossilized and otherwise verbatim, replacing an existing link only with a strictly newer MTIME. A wrong token count, a URL that is not HTTP(S) or an MTIME that is not a positive decimal drops the link.

Where fossil 2.28 differs the draft is followed: fossil fails fatally on a link URL its parser rejects and reads MTIME with strtoll base 0.

New sync.9.5 client cases run against fossil sync --share-links as well. SP-9.5-4 loses its scope note and is covered; SP-9.5-5 and SP-9.5-6 are new rows for which links a client keeps and when it sends req-links.

Tracked in #425. check-in: a565d1c467 user: [email protected] tags: trunk, feat/425-share-links

Changes