vcsPackageSyncer: clearly divide different paths in Fetch
Created by: mrnugget
Attempt nr. 2 after #39020. I think this adds a bit more clarity to the code, but it is, granted, more polish than refactoring, just like @olafurpg predicted.
What I like is that it clearly separates the different paths, depending on whether a revspec was given or not. It also doesn't try to sync all existing versions again in the request path, if the revspec given is invalid (which is why I had to adjust the test). Previously a user could request version foobar
and we'd send a request to the package host to try to re-download a version that has maybe been removed but we still have in git tags
or in the database.
Test plan
- Existing and modified tests