Shallow clones are destructive to the history of the repo, and cannot be used in situations where we build from a git source and want to do cherry-picks from that same git source (for instance in binary repos like linux-firmware).
To fix this use blobless clones instead which gets the full history but only downloads blobs on demand. This is slightly less space efficient but works with essentially all git commands. This also lets us simplify the clone and fetch logic somewhat.
Shallow clones are destructive to the history of the repo, and cannot be used in situations where we build from a git source and want to do cherry-picks from that same git source (for instance in binary repos like linux-firmware).
To fix this use blobless clones instead which gets the full history but only downloads blobs on demand. This is slightly less space efficient but works with essentially all git commands. This also lets us simplify the clone and fetch logic somewhat.