PR-947 needs to be discarded and reworked into something better as a new pull request. The mistakes I made in that pull request include:
- Should have started with an in-memory caching ConcurrentHashMap that uses a "normalized repository URL" as its key and stores the repository size
- Should have created a lookup method that takes the repository URL, converts it to normalized repository repository URL format, then finds that in the cache
- Should have created a cache assignment method that takes the repository URL, converts it to normalized repository URL format, then stores the size of the repository if the size is larger than the size (optionally) stored in that cache entry already
- Should have used the cache lookup method inside the GitToolChooser code prior to reading any other sources. If size is found in cache, use it
- Should have used the cache assignment method to record the non-zero results from a repository lookup
The code that looks for caches on the Jenkins controller by different repository URL variants is likely still useful, since the user may have defined a multibranch repository using an alternate form. However, by checking the cache in memory first, we may avoid most of the work checking different forms of repository URL to see if a cache exists for that URL.