feat: barebones initial server-side upload-pack implementation#2465
feat: barebones initial server-side upload-pack implementation#2465James Gill (JamesPatrickGill) wants to merge 3 commits intoGitoxideLabs:mainfrom
Conversation
16fb5c6 to
d414008
Compare
0981434 to
a614ce3
Compare
Sebastian Thiel (Byron)
left a comment
There was a problem hiding this comment.
Hi, I had a first brief look and hoped you could squash this work into one commit per crate, in order of dependency?
Thanks a lot!
There was a problem hiding this comment.
As I ramp up for review, could you remove the .tar file so I can add them myself (or chose to not add them at all)?
There was a problem hiding this comment.
Thanks for getting back!
I've just done those suggested changes and pushed them.
Understand this might be far from the desired state but very happy to put the time in to get the feature (and also figure out what the contribution looks like to gitoxide haha, the first is always hardest)
There was a problem hiding this comment.
Hi Sebastian Thiel (@Byron), just checking in to see if you've had any chance to review? There's no rush on this obviously, I just have some time coming up I can sink into getting this feature compatible with the codebase.
Any feedback is greatly appreciated 🙏
a614ce3 to
21390ba
Compare
21390ba to
eaec1bc
Compare
tl;dr
I am building a git forge and needed server-side git functionality. I found gitoxide, really liked it and decided to build on it. This is me attempting to upstream it.
I'm happy to rework it and take any feedback!
Hey!
Sorry if me opening this PR out of the blue and is not the process but I have recently started building a small toy git forge in Rust for some fun and when it came to the "git" part I came across gitoxide and really liked it. However, I noticed that the server-side support was not ready for me to build what I wanted, this is my assumption from reading the code anyway.
So I was interested enough to just try to implement it myself and this is what this PR contains. I attempted to go as shallow as possible as to have something to maybe discuss if this is something gitoxide is interested in before I got carried away into all the nitty gritty. That being said it does do some (very little) real stuff:
What is here:
ACK/NAK writers, and upload-pack orchestrators for both protocol versions
objects, and a top-level serve_upload_pack() entrypoint
There are a lot of caveats though...
Caveats:
However despite being pretty far from done I have an ssh server in my git forge able to serve
git clonerequests - this can be seen here: https://github.com/JamesPatrickGill/steidI am very open to guidance and getting this ship shape if you see value. I attempted to match conventions from other crates in the repo as closely as possible.