The current implementation (see GitRekt.WireProtocol.ReceivePack.apply_pack/2) is writing the objects one by one.
When pushing a lot of objects, this tends to take quite some time...
[x] We could try to refactor the entire push process by using git_odb_write_pack to stream the PACK data directly.
The current implementation (see
GitRekt.WireProtocol.ReceivePack.apply_pack/2
) is writing the objects one by one. When pushing a lot of objects, this tends to take quite some time...git_odb_write_pack
to stream the PACK data directly.See libgit2/src/transports/smart_protocol.c for usage example.