ocaml-git icon indicating copy to clipboard operation
ocaml-git copied to clipboard

Server-side command: `upload-pack`

Open panglesd opened this issue 2 years ago • 0 comments

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!

panglesd avatar Jun 22 '23 06:06 panglesd