Repository navigation
Conversation
Benchmark previewAdvisory: changes over 15% are warnings, not merge failures. Positive reference-adjusted change means slower; negative means faster. linuxPerformance overviewNo compatible comparison exceeds the 15% slowdown threshold. Advisory only. Merged baseline: 91437fe; run 42669097757, attempt 2; mean of fastest 7/9 runs. Compatible comparisons: 360/360; unavailable: 0.
Largest regressions:
Typical change is an equal-weight geometric mean of reference-adjusted XFF/main factors. Negative is faster; positive is slower. These correlated cases are not a significance test. Tested merge macosPerformance overviewNo compatible merged baseline comparisons are available; regression status is unknown. Advisory only. Merged baseline: unavailable. Compatible comparisons: 0/360; unavailable: 360.
Typical change is an equal-weight geometric mean of reference-adjusted XFF/main factors. Negative is faster; positive is slower. These correlated cases are not a significance test. Tested merge |
Keep an archive member's metadata consistent with its contents when multiple stored entries normalize to the same path. Previously, a one-byte first entry followed by an eleven-byte duplicate was listed as eleven bytes while reading back the first entry's one byte.
AG;DR
The archive index now retains the first explicit stored header for a normalized member name, matching the existing content-reader selection. A synthesized ancestor remains replaceable by its first explicit stored header. Later duplicates do not replace its type, size, mode, link target or other indexed metadata.
Implementation and scope:
std::maxto keep the indexing function within the existing cognitive-complexity limit. Negative/unknown size semantics remain unchanged.cc_testwith six ASCII regression cases covering first file size/content/metadata observations, file versus directory collisions in both orders, symlink versus file collisions, first symlink target, and synthesized-parent replacement followed by a duplicate.Evidence and validation:
81f5d87315bf0cb49751ed9f0d3d75cf50a81946on Mac, with production sources unchanged.10aa4309c7fd1f6ebe27ce0630ca3475362cfbe5passes all 346 configured release targets on this Mac and drogon Linux. Bazel reuse is limited to unchanged declared inputs; eleven affected suites were also freshly executed on each host.This is a correctness prerequisite discovered while investigating validated TAR payload locators: a locator must not pair the first member's bytes with a later duplicate's size. The locator optimization and its performance evaluation remain separate open work; no speedup is claimed for this fix.
Base: main
81f5d87315bf0cb49751ed9f0d3d75cf50a81946after #1158. The resulting main Test/Benchmarks workflows are running with no observed failed jobs; this PR receives its own current-head Test workflow 42693049145, which is now running.