Files
ngit-grasp/tests
DanConwayDev 479d3b451f fix(sync): skip re-requesting remote-missing oids
Repeated purgatory passes retried every unadvertised OID even after an unchanged remote had already rejected it, leaving market-shaped state events costly despite isolating each failure.

Memoize confirmed object-missing results per clone URL and a stable fingerprint of its advertised OID set. Ref changes invalidate the memo; genuine remote failures are never recorded. Expire entries after the purgatory lifetime and cap the map at 1,024 URLs to bound hostile announcement growth.

Extend the end-to-end fetch scenario to trigger a second immediate sync pass and prove an unchanged advertisement adds no failed upload-pack exchanges. Add helper coverage for stable hashing, invalidation, expiry, and capacity.

Validation: nix develop -c cargo test --test sync purgatory_fetch_batches_available_tips_and_isolates_missing_oids -- --nocapture; nix develop -c cargo test fetch_helper_tests --lib.
2026-08-05 10:41:57 +00:00
..