Utilize git cat-file --batch-command mode
Git 2.36 introduced a new mode in git-cat-file
called --batch-command
https://git-scm.com/docs/git-cat-file#Documentation/git-cat-file.txt---batch-command. This mode allows the caller to issue both contents
as well as info
commands through stdin
. Previously, if one wanted to iterate through many objects but only get the info without getting the full contents of an object --batch-check
would need to be used. But if contents were desired, then a separate git process with git-cat-file --batch
would need to be issued.
This is in fact what we do right now with ObjectReader
and ObjectInfoReader
. For certain operations such as iterating through tree entries we keep two processes around. one --batch-check
for only getting the info and one --batch
for getting the contents when necessary.
Now with --batch-command
, we can simplify this to just using one process.