Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server-side command: upload-pack #618

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

Server-side command: upload-pack #618

wants to merge 14 commits into from

Conversation

panglesd
Copy link
Contributor

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 panglesd marked this pull request as draft June 22, 2023 10:24
@dinosaure dinosaure marked this pull request as ready for review November 20, 2023 16:15
@Julow Julow mentioned this pull request Nov 23, 2023
panglesd and others added 14 commits November 23, 2023 14:53
Signed-off-by: Paul-Elliot <peada@free.fr>
Co-authored-by: Jules Aguillon <jules@j3s.fr>
Signed-off-by: Paul-Elliot <peada@free.fr>
Co-authored-by: Jules Aguillon <jules@j3s.fr>
Signed-off-by: Paul-Elliot <peada@free.fr>
This messages need not to be passed around like ACKs and is moved to a
super type.

Co-authored-by: Paul-Elliot <peada@free.fr>
Co-authored-by: Paul-Elliot <peada@free.fr>
Co-authored-by: Paul-Elliot <peada@free.fr>
This functor defines a function for constructing and streaming a pack
file from a list of revs.

Co-authored-by: Paul-Elliot <peada@free.fr>
Allows to create a mimic context for reading and writing to stdin and
stdout.
Co-authored-by: Paul-Elliot <peada@free.fr>
Signed-off-by: Paul-Elliot <peada@free.fr>
Co-authored-by: Jules Aguillon <jules@j3s.fr>
Signed-off-by: Paul-Elliot <peada@free.fr>
This is just a hack to make the git clone work, need to be cleaned and verified!

Signed-off-by: Paul-Elliot <peada@free.fr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants