Un clone riuscito del repository principale non verifica i sottomoduli. Un sottomodulo è un altro repository Git, forse su un altro host e con un altro trasporto.

Inizia leggendo gli URL dichiarati:

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

Un repository padre scaricato via HTTPS può contenere un sottomodulo che usa git@host:. Un’impostazione proxy HTTP non configura quella connessione SSH. Gli URL relativi vanno risolti rispetto al remote corretto del superprogetto, non a un indirizzo web dedotto dal nome del progetto.

Le impostazioni locali hanno un ambito

Una voce locale http.proxy appartiene al repository il cui file di configurazione la contiene. Controllare solo il padre non mostra tutte le impostazioni effettive del figlio inizializzato.

Per un override HTTPS temporaneo durante un aggiornamento ricorsivo, passa la configurazione da riga di comando di Git a quella chiamata:

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

Sostituisci l’endpoint di esempio. Per sottomoduli HTTPS pubblici su una rotta che consente proxy pubblici, l’elenco dei proxy HTTP offre indirizzi candidati. Non converte gli URL SSH in HTTPS; se la rotta sorprende, controlla anche la configurazione più specifica basata sull’URL.

Quando cambia l’URL registrato

Git registra localmente la configurazione del sottomodulo durante l’inizializzazione. Se l’URL è cambiato, confronta la dichiarazione corrente con il valore locale prima di accusare il proxy. L’operazione sync aggiorna gli URL dalla dichiarazione del progetto; non è una configurazione proxy di rete.

Per errori annidati annota percorso esatto e remote indicati. L’operazione ricorsiva può contattare più host; quello interno può richiedere un’eccezione diretta mentre quello pubblico usa il proxy.

Separa errori di trasporto ed errori del repository. Commit non disponibile, accesso negato e connessione proxy fallita sono cause diverse dello stesso risultato «submodule update failed».

Articoli correlati