Skip to content

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:

  1. Use ListAllBlobs(), ListAllCommits(), and GetTreeEntries() as described in this comment.
  2. Use ListAllBlobs() together with ListBlobs() 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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information