Skip to content
go-libfossil Timeline
Login

Timeline

Parents and children of check-in [789434c556]

2026-10-20
18:14
Merge main into batch tag repair, preserving unreleased changes check-in: ef382ed65e user: [email protected] tags: main, perf/tag-repair-batch, trunk
07:08
fix(manifest): recheck the parents of a check-in tagged before it is linked

A control artifact can write a check-in's branch row before the check-in is linked; that write schedules the check-in while it has no parents. When the check-in is linked later, in another transaction, its plink rows name parents nothing rechecks, so a parent on the same branch keeps a leaf row it no longer earns. Applying leaf rechecks per link transaction made this common in a clone, which links each received artifact in its own transaction: a clone of fossil.fossil ended with 1435 leaves instead of fossil's 1426.

Linking a check-in that already carries a branch row now schedules it, and with it the parents it names. A check-in with no branch row is left alone, as fossil leaves it (#426). TestReparent's relink keeps propagated branch rows, so it now gives c2 the verdict a rebuild does.

Tracked in #432. check-in: 789434c556 user: [email protected] tags: main, perf/tag-repair-batch, trunk

06:29
test(manifest): probe arrival order against a rebuild

TestArrivalOrderMatchesRebuild builds a random history per seed, delivers its blobs to a fresh repository in random order and rounds, crosslinking after each, and compares tags and leaves with a rebuild. It runs only when LIBFOSSIL_ARRIVAL_PROBE names a seed count. Without reparents every seed must match; with them it reports the seeds that differ, the divergence documented on ReparentCheckins.

Tracked in #432. check-in: 4f3f1669e6 user: [email protected] tags: main, perf/tag-repair-batch, trunk