diff: Introduce `DiffBlobs` RPC
Currently the CommitDiff
RPC is used to generate diffs between two
points in a repository. This RPC lacks fine-grained control over exactly
what diffs are being computed between a set of commits. As a result, if
there are many diffs that need to be computed, the RPC may timeout. To
remediate this, the caller should instead specify exactly which diffs to
generate thus enabling potential pagination.
This change introduces the DiffBlobs
RPC which provides callers with
the ability to specify batches of blob pairs to the server to compute
diffs for. Callers are required to already know the pre-image and
post-image blob IDs for each diff that is to be generated. To attain
this information, the FindChangedPaths
RPC is used.
Related: #5812 (closed)