Proxyväg för Gits undermoduler
Granska undermodulernas URL:er, transporttyper och arkivinställningar när Gits huvudcheckout fungerar via en proxy men barnen inte gör det.
En lyckad kloning av huvudarkivet testar inte dess undermoduler. En undermodul är ett annat Git-arkiv, kanske på en annan värd och kanske med en annan transport.
Börja med att läsa de deklarerade URL:erna:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Ett överordnat arkiv som hämtas över HTTPS kan innehålla en undermodul som använder git@host:. En HTTP-proxyinställning konfigurerar inte SSH-anslutningen. Relativa URL:er måste lösas mot superprojektets rätta remote, inte mot vilken webbadress som helst som antagits utifrån projektnamnet.
Lokala arkivinställningar har en räckvidd
En lokal http.proxy-post tillhör arkivet vars konfigurationsfil innehåller den. En kontroll av bara det överordnade arkivet visar inte alla effektiva inställningar i ett initierat barnarkiv.
Vid en tillfällig HTTPS-proxyöverskrivning under en rekursiv uppdatering kan Gits kommandoradskonfiguration skickas med till anropet:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Ersätt exempelendpointen. För offentliga HTTPS-undermoduler på en rutt som tillåter offentliga proxyer erbjuder HTTP-proxylistan möjliga adresser. Detta gör inte SSH-URL:er till HTTPS; kontrollera även URL-specifik konfiguration om rutten överraskar.
När den registrerade URL:en ändrades
Git registrerar undermodulens konfiguration lokalt under initieringen. Om URL:en ändrades, jämför den aktuella deklarationen med det lokala värdet innan du avgör att proxyn är trasig. Synkroniseringen uppdaterar registrerade URL:er från projektdeklarationen; den är inte en nätverksproxyinställning.
Vid nästlade fel ska du anteckna undermodulens exakta sökväg och remote från felet. En rekursiv åtgärd kan kontakta flera värdar; en intern värd kan behöva ett direkt undantag medan en offentlig värd använder proxy.
Håll transportfel åtskilda från arkivfel. Ett otillgängligt commit, nekad åtkomst och en misslyckad proxyanslutning är olika orsaker till samma övergripande resultat.