mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 11:49:28 +00:00
unseen: full-objects clone instead of blob:none promisor (bulk pack, no lazy per-blob fetch)
The harvester cloned --filter=blob:none --no-checkout, then blame/log/diff triggered the promisor to fetch each needed blob ON DEMAND -- hundreds of round-trips per repo, the dominant cost that made the draw unable to converge. The blobless clone was a premature optimization that backfired. Drop --filter=blob:none from the clone and the two commit fetches. A full-objects --no-checkout clone brings the whole commit graph AND every blob in one pack, so blame/log/diff read locally; --no-checkout still skips the working tree so disk stays bounded (plus the existing 500 MiB clone_size_cap and the disk guard). With no promisor remote, a genuinely missing object now errors loudly instead of silently round-tripping -- the instrument guarantee that the bulk fetch was complete. Extraction semantics are unchanged (same SZZ introducing-commit positive, same stratified ordinary negatives, byte-identical entries); only the object-transfer strategy changes. Test inverted to assert no blob:none filter on the clone; README updated. 145 unseen tests pass, ruff clean. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
f712b2cffa
commit
00a1fdb30f
@@ -100,7 +100,11 @@ def test_cache_is_outside_repository_deleted_and_partial(tmp_path):
|
||||
assert git.path.exists()
|
||||
clone_path = git.path
|
||||
assert not clone_path.exists()
|
||||
assert "--filter=blob:none" in calls[0] and "--no-checkout" in calls[0]
|
||||
# Full-objects clone: no blob:none promisor (which caused per-blob lazy
|
||||
# fetches), so every blob arrives in one pack and a missing object errors
|
||||
# loudly. --no-checkout still skips the working tree.
|
||||
assert "--filter=blob:none" not in calls[0] and "--no-checkout" in calls[0]
|
||||
assert "clone" in calls[0]
|
||||
assert clones.counts["clones"] == 1 and clones.counts["clone_bytes"] == 3
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user