Skip to content

gitaly-lfs-smudge: Implement support for running as a long-running filter process

Patrick Steinhardt requested to merge pks-lfs-process-filter into master

Originally, Git only ever supported smudging the contents of a single blob by piping that blob to a filter process directly. This meant that for every blob that needs converting, we have to spawn a full process. Naturally, this doesn't scale well when repositories grow and when they have many blobs that do need converting. Git has thus introduced a long-running filter protocol: instead of spawning one process per blob that needs converting, Git will only spawn a single server and then communicate with that server via pktlines.

Implement support for this protocol in gitaly-lfs-smudge so that we can start using it in our GetArchive() RPC.

Closes #4153 (closed)

Merge request reports