-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Add pure SSH LFS support #31516
base: main
Are you sure you want to change the base?
Add pure SSH LFS support #31516
Conversation
@lunny added copyright headers. |
efe3893
to
d506260
Compare
Improved error handling. |
Accidentally resolved the conversation about DB connections above, but reiterating: Pushes and clones work... but there's sometimes (by which I mean decently reproducible) bug where after transferring and verification and everything... the connection just hangs for almost exactly 120 seconds. After which it just ends gracefully and git proceeds with its push. It's particularly nasty, I have no leads on it yet. The best I can figure out is that it looks like the |
Added locking API support. Well at least I figured out what's causing the hang. Setting I think this is feature interacting badly with the SSH server? I traced the traffic, and indeed, something weird is happening on the client side. Git LFS spawns several workers each making its own connection. In a multiplexed connection, only the "first" spawn of the our commands gets a Can you check and see if this is reproducible in your environments? |
Yeah, I'm not going crazy. This commit: And this has history, it isn't even the first time lol: |
just made: git-lfs/git-lfs#5816 |
5fadb5d
to
de9a3cf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As pointed in quite some places already but all should be fixed
@lafriks adressed the url joins. |
Yes |
Okay, I see, that was the part I was missing. This conversation would've been a lot shorter otherwise. This way it's not an obvious bug because the paths don't conflict with the existing public paths (though I still don't quite grasp to what ends). |
@lunny added private API. Used a |
Thank you for the change and I think you also need to change the client code. |
Ah right, my bad. |
41b5a40
to
2ccf51c
Compare
Just a sec, missed adding the internal token header there... |
So this is getting ugly pretty quick. The LFS handler APIs are hardcoded to require a JWT token (and this is necessary to check user permissions on the repo) as the |
b7f3d2f
to
5a2ca80
Compare
I would be fine with the current state, just mention the lfs pull on the docu and the example ini next to tje enable option |
Also add handler in runServ() Doesn't add support for the locking API yet
5a2ca80
to
199325b
Compare
It looks like |
I added it under |
OK. It's a legacy problem. So could you add example in |
199325b
to
1e8502f
Compare
@lunny added it to the example config. |
Fixes #17554
/claim #17554
Docs PR https://gitea.com/gitea/docs/pulls/49
To test, run pushes like:
GIT_TRACE=1
git push. The trace output should mention "pure SSH connection".