Stop memoizing fetch refSpecs

Change I29507376e introduced the memoization fetch refsSpecs.

This was intended to avoid expensive, repeated delta computations for
fetches without an explicit delta to fetch (for example via the
`pull-replication start` SSH command), however the memoization was
introduced for _both_ delta and non-delta fetches.

The problem with this approach is that it doesn't account for the fact
that delta is a mutable entity: `FetchOne` could be rescheduled for
whatever reason, consolidating new refs into a new delta.

If `FetchOne` tried to replicate again based on the new delta refs, the
memoizing would have caused the return of the previous delta value,
causing the effective loss of the refs to replicate.

Remove memoization altogether. This trade offs the possible expensive
computation of expanding non-delta fetches multiple times, in case of a
reschedule, in favour of accuracy of in fetching only the relevant refs.

Bug: Issue 337338030
Change-Id: I06442a66896205258b2b0411f74855465c333864
2 files changed
tree: e5eb37d290924f35ed5bcd31eea8eec289245ecb
  1. example-setup/
  2. src/
  3. .gitignore
  4. BUILD
  5. Jenkinsfile
  6. LICENSE