On Sun, Jun 16, 2024, at 4:39 PM, David C. Rankin wrote: > On 6/16/24 05:30, Guus Snijders wrote: > > Have you tried using http:david instead? > > And make sure the files are group-writable. > > > > I haven't tested this, but this seems to answer all the mentioned > > constraints. > > > > Thank you Guus, > > Unfortunately, yes, I've tried every combination of user:group ownership > and it is really unfortunate that git won't server https unless the > directories are 'owned' by http. I've even tried adding myself to the http > group, but no luck. > > Why I can't chmod 0775 repodir.git and then use david:http is indeed > stange, but git requires http:dontcare to server https. > > Of course ssh requires david:dontcare to server git over ssh. > > I'll have to try Ryan's binfs work around and see if I can make something > like that work. It's just wild that git doesn't have a published fix for this > after the security change. > > github does something. I can pull over https and ssh still works there. It > may be worth opening an issue with git to see how they feel this catch 22 > should be handled for locally hosted servers. If I find a fix, I'll report > back. > > -- > David C. Rankin, J.D.,P.E. >
You mentioned: > github does something. I can pull over https and ssh still works there. I *highly* doubt GitHub uses standard Git in their backend at all. Your git repository is probably sitting in chunks somewhere in a highly distributed database with lots of indexing and whatnot added on top; you're not just connecting to a server and pulling the repo directly off disk somewhere. It may have started off using standard git, but I'll eat my hat if it still is. I had the "pleasure" of using/administering TFS (Microsoft Team Foundation Server) 8+ years ago when they introduced Git support; I spent a while trying to figure out where they stored the git repositories until I found that everything was in the database, just like everything else in TFS. They just implemented a git-compatible API of sorts where Git thinks it's talking to a regular git server.