Only push the objects that are not in the remote artifact share
The push code for the ostree artifact share could be improved.
Note that in the following, refs refers to the symbolic refs, while objects refer to checksummed files, commit objects and detached metadata objects.
-
Currently the client side sends the refs which it intends to push, and the server side just sends it back.
-
Instead the client could send a list of the actual objects it has available to push along with the refs, and the server side could respond with a list of objects that are in the received batch, but not present in the artifact share.
This would allow the client to only send the objects which are needed in the remote, instead of redundantly sending over files which the server already has an identical copy of.