Proxyruting for Git-undermoduler
Sjekk URL-er for undermoduler, transporttyper og depotkonfigurasjon når hoveddepotet fungerer gjennom en proxy, men barna ikke gjør det.
En vellykket kloning av hoveddepotet tester ikke undermodulene. En undermodul er et annet Git-depot, kanskje på en annen vert og med en annen transport.
Start med å lese de deklarerte URL-ene:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Et overordnet depot hentet over HTTPS kan inneholde en undermodul som bruker git@host:. En HTTP-proxyinnstilling konfigurerer ikke den SSH-forbindelsen. Relative URL-er må løses mot riktig remote for superprosjektet, ikke mot en nettadresse du antok ut fra prosjektnavnet.
Lokale depotinnstillinger har et virkeområde
En lokal http.proxy-oppføring gjelder depotet som har den i konfigurasjonsfilen. Ikke anta at kontroll av forelderen alene viser alle aktive innstillinger i et initialisert barnede¬pot.
For et midlertidig HTTPS-proxy ved rekursiv oppdatering gir du Git-konfigurasjon på kommandolinjen til dette kallet:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Bytt ut eksempelendepunktet. For offentlige HTTPS-undermoduler på en rute som tillater offentlige proxyer, gir HTTP-proxylisten kandidatadresser. Dette gjør ikke SSH-URL-er til HTTPS; se også på mer spesifikk URL-konfigurasjon hvis ruten overrasker.
Når den registrerte URL-en er endret
Git registrerer undermodulens konfigurasjon lokalt under initialisering. Sammenlign gjeldende erklæring med den lokale verdien før du konkluderer med at proxyen er ødelagt. Den dokumenterte sync-operasjonen oppdaterer registrerte URL-er fra prosjektets erklæring; den er ikke selv en nettverksproxyinnstilling.
Ved nestede feil noterer du nøyaktig undermodulsti og remote fra feilen. En rekursiv operasjon kan kontakte flere verter; en intern vert kan trenge direkte unntak mens en offentlig vert bruker proxyen.
Hold transportfeil og depotfeil fra hverandre. Manglende commit, nektet tilgang og mislykket proxyforbindelse er ulike årsaker til samme overordnede resultat «submodule update failed».