GitInput: Include deepClone option in the cache key

Without this commit, two jobsets using the same repository as input, but different deepClone options, end up incorrectly sharing the same "checkout" for a given (uri, branch, revision) tuple. The presence or absence of .git is determined by the jobset execution order.

This patch adds the missing isDeepClone boolean to the cache key.

The database upgrade script empties the CachedGitInputs table, as we don't know if existing checkouts are deep clones. Unfortunately, this generally forces rebuilds even for correct deepClone checkouts, as the binary contents of .git are not deterministic.

Fixes #510

Created by  Damien Diederen  on June 15, 2021
QPTEVLEO6L6VII42UNKTIOGXVK27BOWNMEVO7ZPRTYV6AVZTATXQC
Change contents