Git push и http(s)

April 29, 2024 GIT BUGS

Итак, у меня есть дома инсталляция управлятора git-репозиториями - gitea. Это относительно функциональная штука, которая пытается изображать функциональность github-а. Для opensource-проектов такая модель подходит больше, чем та, что предложена gitlab-ом. Gitlab больше удобен скорее корпоративным юзерам. Но не суть.

Интересность моей инсталляции в том, что пуши по ssh я отключил (работает только http в качестве транспорта). Ну, какбэ, оно мне не сильно надо ибо может (и будет) создавать некоторые проблемы в работе gitea/git из контейнера. Хотя, конечно, контейнеризация там нафиг не нужна, но для простоты апгрейда хостовой тачки, сервисы в контейнерах - это самое то.

Так вот, с некоторого времени я стал замечать, что пуши в gitea не проходят:

send-pack: unexpected disconnect while reading sideband packet

а в логах gitea 401 http-статус.

Что бы я ни делал, а оно в принципе не работало. Особенно, на большом количестве изменений. Для меня это болезненно, так как я некоторые проекты разрабатываю на гошке и вендорю зависимости, чтобы было проще потом собирать.

И вот, в очередной раз нарвавшись на эту пробему, я в очередной раз решил погуглить, что можно с этим сделать? И в итоге нагуглил ответ без галочки, который рекомендует увеличить буфер http-транзакций.

git config http.postBuffer 524288000

или в конфиге git-а прописать:

[http]
        postBuffer = 524288000

И... внезапно, это сработало.

Также из интересного в секции http можно прописать настройки и для конкретного репозитория. А ещё есть приятная настройка для отключения проверки валидности ssl-сертификата (актуально для самоподписных сертификатов):

[http "https://weak.example.com"]
        sslVerify = false

Next Post