Git dumb HTTP protocol should use WebDAV PROPFIND method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx/

> 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.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux