Czy istnieje sposób, aby powiedzieć git, aby ponowić próbę, jeżeli żądanie HTTP nie powiodło?
Brak samego git, nie obsługuje natywnie tej funkcji.
Ale co ciekawe, pomysł owijania polecenia git w celu powtórzenia jego wykonania został zrobiony wcześniej: patrz "git-retry
(1) Manual Page", część depot_tools, a collection of tools for dealing with Chromium development.
shell wrapper git-retry
wywołuje skrypt Pythona git_retry.py
z następujących opcji:
'-v', '--verbose', default=0,
Zwiększenie szczegółowości; można podać kilka razy
'-c', '--retry-count', default=GitRetry.DEFAULT_RETRY_COUNT (5),
liczbę ponownych prób (domyślnie = 5)
'-d', '--delay', default=GitRetry.DEFAULT_DELAY_SECS (3.0)
Określa się czas (w sekundach) oczekiwania pomiędzy kolejnymi ponowne próby (domyślnie = 3 sekundy). Może to być zero.
'-D', '--delay-factor', default=2
Współczynnik wykładniczy stosuje się do opóźnień w między kolejnymi awariami (default =% domyślnych). Jeśli wynosi ona zero, opóźnienia wzrosną liniowo. Ustaw to na jedno, aby miało stałe (nie rosnące) opóźnienie.
Uwaga: klon git dla repo z modułem zawsze będzie dążył do klonowania submodule dwukrotnie (jeden ponawiania). Zobacz "Is there any way to continue Git clone from the point where it failed?".
Polecenie Git powinno zwrócić właściwy [kod zakończenia] (https://en.wikipedia.org/wiki/Exit_status), który można sprawdzić, czy polecenie się powiodło. Jeśli to się nie uda, po prostu powtórz N razy, zanim przerwiesz. – poke