Revise package revision caching strategy #4094
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This maintains a separate, lower level cache for the git package revisions. This is somewhat hokey - but I expect the entire "cache" repository type to go away completely with #3630, so this is just trying to optimizing things in the short term.
This makes it so that each "refresh" now only loads changed packages - except for those in main, where it loads all packages if main has changed.
Since loading is now much faster, rather than trying to maintain the cache through mutations, we just refresh the cache after any mutating call.