Итак, у меня есть дома инсталляция управлятора 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