Speed up dealing with non-reachable git repos #5658
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.
While working on a spec failure, I observed the failing spec was also soooooo slow:
Further investigation revealed that this spec was trying to do the following up to 76 times, on a non-existing github repository:
https://github.com/dependabot/dummy-git-dependency.git/info/refs?service=git-upload-pack
.git ls-remote https://github.com/dependabot/dummy-git-dependency.git
locally.This is done every time the update checker needs to fetch remote git tags, and if this fails, the checker considers that there are no remote tags, but will keep on retrying the same thing and failing once and again.
This commit changes the commit fetcher to memoize the tags the first time they are fetched. With this change, the spec is now much faster:
I expect this to also improve things in production, of course.