Есть ли способ сделать git через тайм-аут http?

У меня есть script запуск git clone/pull автоматически (это происходит на самом деле внутри jenkins CI, но мой вопрос более общий). Удаленный сервер git основан на HTTPS. Аппарат с клиентом git имеет слабое подключение к Интернету DSL, поэтому он иногда восстанавливает и изменяет IP-адрес, теряя все существующие соединения. Когда соединение терпит неудачу, пока клиент git работает, клиент никогда не преуспевает, но он не прерывается с тайм-аутом, поэтому мой script зависает.

Я хотел бы настроить клиента так, чтобы он перестал работать через некоторый период (поэтому script может повторить попытку, или зарегистрировать сбой, или предпринять любые другие действия). Но я не нашел никакой опции тайм-аута в man-странице git -config. Я нашел связанный вопрос, но это только для соединений SSH. Вы знаете, есть ли альтернатива для http-серверов?

Ответ 1

Вы можете попробовать использовать

http.lowSpeedLimit, http.lowSpeedTime

Если скорость передачи HTTP меньше чем http.lowSpeedLimit для дольше чем http.lowSpeedTime секунд, перенос прерывается. Может быть отменено по GIT_HTTP_LOW_SPEED_LIMIT и Среда GIT_HTTP_LOW_SPEED_TIME переменные.

Ответ 2

Дополнительно к ответу на паркет:

Также

git config --global http.lowSpeedLimit 1000
git config --global http.lowSpeedTime 600

отлично работает.

Приведенный выше пример означает, что дистанционное действие будет блокироваться, если скорость будет ниже 1 КБ/с в течение 600 секунд (10 минут), действие будет заблокировано.

Ответ 3

Добавьте это в .gitconfig...

[http]
lowSpeedLimit = 1000
lowSpeedTime = 20

lowSpeedLimit - это байты в секунду

Я называю это предложением Codeplex.