public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
* Git dumb HTTP protocol should use WebDAV PROPFIND method
@ 2025-09-08 12:10 Milan Hauth
  2025-09-08 18:47 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Milan Hauth @ 2025-09-08 12:10 UTC (permalink / raw)
  To: git

i am serving git repos over http with webdav extensions

read operations like git ls-remote, git fetch, git pull
should work with such an http remote
but currently (with git 2.49.0) this fails with

$ git ls-remote http://localhost/src/somerepo/
fatal: repository 'http://localhost/src/somerepo/' not found

$ git ls-remote http://localhost/src/somerepo/.git/
fatal: repository 'http://localhost/src/somerepo/.git/' not found



http server: nginx

nginx webdav module:
https://github.com/mid1221213/nginx-dav-ext-module

nginx config:

> http {
>   server {
>     listen 0.0.0.0:80;
>     root /var/www/nginx/htdocs;
>     location /src/ {
>       # PROPFIND allows directory listing
>       dav_ext_methods PROPFIND OPTIONS;
>       dav_access user:r group:r all:r;
>       autoindex on;
>       # disable index.html
>       index this_file_should_never_exist_DsMSIsKgBk;
>     }
>   }
> }

available methods can be fetched with the OPTIONS method

curl -s -i -X OPTIONS http://localhost/src/somerepo/ | grep -i ^allow:

directory listings can be fetched with the PROPFIND method

curl -s -X PROPFIND -H "Depth: 1"  http://localhost/src/somerepo/ |
grep -F 'D:displayname' | sed -E 's|.*>(.*)<.*|\1|' | LANG=C sort



workaround:

pushd /path/to/repo/.git/
git --bare update-server-info
mv hooks/post-update.sample hooks/post-update
popd
git ls-remote http://localhost/src/somerepo/.git/



continue:

Git dumb HTTP protocol should work without update-server-info
https://lore.kernel.org/git/CAGiEHCtP29bQRsEyLabNrLuiP96P-o7EEGi88B7pJbP0tfprxw@mail.gmail.com/

> reading directories is only possible with WebDAV since
> HTTP doesn't offer native directory listing.  However, we don't use
> WebDAV for fetches and other read operations and not all web servers
> support it.  We get better web server support in many cases by requiring
> that the server side do the work of updating the lists of packs and
> refs.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-09-08 19:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-08 12:10 Git dumb HTTP protocol should use WebDAV PROPFIND method Milan Hauth
2025-09-08 18:47 ` Junio C Hamano
2025-09-08 19:09   ` Milan Hauth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox