Uspješno kloniranje glavnog repozitorija ne testira njegove podmodule. Podmodul je drugi Git repozitorij, možda na drugom hostu i s drugim transportom.

Počnite čitanjem deklarisanih URL-ova:

git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive

Roditeljski repozitorij preuzet preko HTTPS-a može sadržavati podmodul koji koristi git@host:. Postavka HTTP proxyja ne podešava tu SSH vezu. Relativne URL-ove podmodula također treba razriješiti prema odgovarajućem udaljenom repozitoriju nadređenog projekta, a ne prema web-adresi koju ste pretpostavili iz naziva projekta.

Lokalne postavke repozitorija imaju opseg

Lokalni unos http.proxy pripada repozitoriju čija ga konfiguracijska datoteka sadrži. Nemojte pretpostaviti da pregled samo roditelja otkriva sve efektivne postavke unutar inicijaliziranog podređenog repozitorija.

Za privremeno zadavanje HTTPS proxyja kroz rekurzivno ažuriranje, tom pozivu možete proslijediti Git konfiguraciju iz komandne linije:

git -C project -c http.proxy=http://203.0.113.10:8080 \
  submodule update --init --recursive

Zamijenite primjer krajnje tačke. Za javne HTTPS podmodule na ruti koja dozvoljava javne proxyje, lista HTTP proxyja daje moguće adrese. Ovo ne pretvara SSH URL-ove podmodula u HTTPS, a konkretniju konfiguraciju prema URL-u i dalje treba pregledati ako je odabrana ruta neočekivana.

Kada se zabilježeni URL promijeni

Git tokom inicijalizacije lokalno registruje konfiguraciju podmodula. Ako se URL podmodula u projektu promijenio, uporedite trenutnu deklaraciju s lokalno registrovanom vrijednošću prije nego što zaključite da proxy ne radi. Dokumentovana operacija sync ažurira registrovane URL-ove iz deklaracije projekta; sama nije mrežna proxy postavka.

Kod ugniježđenih grešaka zabilježite tačnu putanju podmodula i udaljeni repozitorij naveden u grešci. Rekurzivna operacija može kontaktirati više hostova; internom hostu možda treba izuzetak za direktnu vezu dok javni host koristi proxy.

Odvojite transportne greške od grešaka repozitorija. Nedostupan commit, pristup koji repozitorij odbija i neuspjela veza s proxyjem različiti su razlozi za isti opći rezultat „submodule update failed“.

Povezani članci