Make deserialization non-fatal when assessing source tree revisions (#12319)

## Summary

Closes https://github.com/astral-sh/uv/issues/12318.
This commit is contained in:
Charlie Marsh
2025-03-19 10:15:12 -07:00
committed by GitHub
parent bf12cdbd37
commit 011a6de6dc
+11 -3
View File
@@ -1363,9 +1363,17 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
.map_err(Error::CacheRead)?
.is_fresh()
{
if let Some(pointer) = LocalRevisionPointer::read_from(&entry)? {
if *pointer.cache_info() == cache_info {
return Ok(pointer);
match LocalRevisionPointer::read_from(&entry) {
Ok(Some(pointer)) => {
if *pointer.cache_info() == cache_info {
return Ok(pointer);
}
debug!("Cached revision does not match expected cache info for: {source}");
}
Ok(None) => {}
Err(err) => {
debug!("Failed to deserialize cached revision for: {source} ({err})",);
}
}
}