Skip to content
go-libfossil Check-in [65783dbd3e]
Login

Check-in [65783dbd3e]

Overview
Comment:fix(sync): send the clone reply and cluster igots in place (#401)

page_xfer writes the clone batch, its catalog, clone_seqno and push card at the clone card and the req-clusters igots at the pragma, so any later reset discards them (sync-protocol-01 Section 10.1). They were sent after the card loop and survived a bad command or refused push. The clone snapshot cookie is now read ahead of the loop.

Tracked in #389.

Timelines: family | ancestors | descendants | both | main | trunk
Files: files | file ages | folders
SHA3-256: 65783dbd3e0008353c0385e8438ba99883c62ebd220d9a6cead5372e50474c7b
User & Date: [email protected] on 2026-10-13 06:42:32.000
Other Links: branch diff | manifest | tags
Context
2026-10-13
07:12
fix(sync): end card processing when a pushed file fails its handler (#402)

* fix(sync): end card processing when a pushed file fails its handler

sync-protocol-01 Section 5.2 has a file or cfile handler failure reset the reply, send the error and stop parsing, as fossil's xfer_accept_file path does. A wrong hash, a bad HASH or DELTASRC and a storage failure now break the card loop; a file delta with a held basis is verified before it is stored (Section 7.5).

Tracked in #390.

* fix(sync): model a bad file name in the clone-fatal probe

Tracked in #390. check-in: c36a69e366 user: [email protected] tags: main, trunk

06:42
fix(sync): send the clone reply and cluster igots in place (#401)

page_xfer writes the clone batch, its catalog, clone_seqno and push card at the clone card and the req-clusters igots at the pragma, so any later reset discards them (sync-protocol-01 Section 10.1). They were sent after the card loop and survived a bad command or refused push. The clone snapshot cookie is now read ahead of the loop.

Tracked in #389. check-in: 65783dbd3e user: [email protected] tags: main, trunk

06:34
fix(sync): apply ci-lock and ci-unlock for any requester (#400)

sync-protocol-01 Section 9.4 applies both pragmas with no Write test, as fossil's page_xfer does. The leaf sweep before each lock write bounds the lock table. nobody's lock row stores a null login; ci-lock-fail fossilizes LOGIN and names a login-less holder nobody. lock-timeout is read as db_get_int reads it.

Tracked in #392. check-in: e44a484403 user: [email protected] tags: main, trunk

Changes