ocaml-git
ocaml-git copied to clipboard
Server-side command: `upload-pack`
This is the implementation of a simplified upload-pack command:
- "shallow", "deepen", "peeled" part of the protocol are not implemented
- coloring of the commits is only done when the client decides to close the negociation, so this part of the protocol:
In multi_ack mode: [...]
- once the server has found an acceptable common base commit and is ready to make a packfile, it will blindly ACK all have obj-ids back to the client.
is not implemented, instead the server always only ack common commits.
The last commit of this PR is a quick hack to make it work before the end of the Mirage retreat, it would need to be cleaned.
When I tried using the unix file backend, guit, to clone this repo, the computation time of get_uncommon_objects was very long.
I reasonably don't have much time to continue this work, so I'm happy to leave it as a draft PR if someone wants to take over!
Made with @Julow during the May 2023 Mirage retreat!