Есть ли способ сделать git over http timeout? - PullRequest
13 голосов
/ 23 июня 2011

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

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

Ответы [ 3 ]

14 голосов
/ 28 мая 2016

Дополнительно к CAD bloke ответ:

Также

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

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

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

11 голосов
/ 24 июня 2011

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

http.lowSpeedLimit, http.lowSpeedTime

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

5 голосов
/ 05 мая 2016

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

[http]
lowSpeedLimit = 1000
lowSpeedTime = 20

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

Я называю это условием Codeplex.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...