Consider introducing a new RPC to list blobs with file paths when --missing flag is introduced for git rev-list
Overview
In order to obtain the file path for a list of blobs, we currently have to either:
- Use
ListAllBlobs(),ListAllCommits(), andGetTreeEntries()as described in this comment. - Use
ListAllBlobs()together withListBlobs()as described in this comment.
Which isn't optimal, and has serious performance implications as discussed in the thread.
However, with the introduction of Git v2.44, a new --missing flag will become available for git rev-list command, which allows git to discard missing commits during a walk/traversal. This issue is used to track the effort of adding the new RPC when Git v2.44 becomes available based on this command:
git rev-list --objects --filter=object:type=blob --filter-provided-objects --missing=allow-any --stdin <new_commits
Edited by Ahmed Hemdan