Ich habe ein Skript, das git clone / pull automatisch ausführt (dies geschieht tatsächlich in jenkins CI, aber meine Frage ist allgemeiner). Der Remote-Git-Server ist HTTPS-basiert. Die Maschine mit dem Git-Client hat eine flockige DSL-Internetverbindung, so dass sie sich manchmal neu verbindet und die IP-Adresse ändert, wobei alle bestehenden Verbindungen verloren gehen. Wenn die Verbindung fehlschlägt, während der Git-Client ausgeführt wird, ist der Client nie erfolgreich, aber er schlägt auch nicht mit einem Timeout fehl, sodass mein Skript auflegt.
Ich möchte den Client so einrichten, dass er nach einer gewissen Zeit abläuft (das Skript kann also einen neuen Versuch starten oder einen Fehler protokollieren oder eine andere Aktion ausführen). Aber ich habe keine Timeout-Option in der git-config-Manpage gefunden. Ich fand eine verwandte Frage , aber nur für SSH-Verbindungen. Weißt du, ob es eine Alternative für HTTP-Server gibt?
Sie können versuchen,
zu verwendenСсылка
Wenn die HTTP-Übertragungsgeschwindigkeit geringer ist als http.lowSpeedLimit für länger als http.lowSpeedTime Sekunden, die Übertragung wird abgebrochen. Kann außer Kraft gesetzt werden von GIT_HTTP_LOW_SPEED_LIMIT und GIT_HTTP_LOW_SPEED_TIME-Umgebung Variablen.
Zusätzlich zur CAD-Datei 's Antwort:
Auch
%Vor%funktioniert gut.
Das obige Beispiel bedeutet, dass die Fernsteuerung blockiert wird, wenn die Geschwindigkeit für 600 Sekunden (10min) unter 1KB / s gehalten wird. Die Aktion wird blockiert.