проблема с git ls-remote http

http-сервер kestrel (win7 sp1 x64), работающий на порту 3112 и обслуживающий статические файлы репозитория git

эти команды выполняются с помощьюgit bashна клиентских машинах win10 и win7 с одинаковыми результатами

      curl http://server:3112/repository/.git/HEAD
// ok

git ls-remote file://server/shared-folder/repository 
// ok

git ls-remote http://server:3112/repository/.git
// fatal: repository 'http://server:3112/repository/.git/' not found

как исправить эту проблему?

1 ответ

Когда вы предоставляете репозиторий через HTTP или HTTPS, вы можете сделать это двумя способами: устаревший протокол, использующий WebDAV, и интеллектуальный протокол. В обеих ситуациях Git нужно больше, чем простоссылка: ему также нужны некоторые данные по путикоторый сообщает ему (а) какой протокол он использует и (б) информацию о том, какие ссылки доступны. Ему также нужен способ с устаревшим протоколом, чтобы определить, какие объекты и пакеты существуют. Это связано с тем, что HTTP не предоставляет стандартизированных списков каталогов и файлов, и, как следствие, Git должен сгенерировать эту информацию.

Git по умолчанию поставляется схук, который вызываетпрограмма, которая генерирует необходимые файлы по умолчанию. Вам нужно будет запустить это, прежде чем к нему можно будет получить доступ через HTTP, а также каждый раз, когда изменяется репозиторий.

Обратите внимание, что даже если вы сделаете это, без дополнительной настройки этот репозиторий будет доступен только для чтения. Вы можете узнать больше о том, как настроить сервер чтения-записи со смарт-протоколом и CGI, используя.

Другие вопросы по тегам