Маршрутызацыя праз проксі для падмодуляў Git
Калі асноўны рэпазіторый Git працуе праз проксі, а даччыныя — не, праверце URL падмодуляў, транспарты і канфігурацыю рэпазіторыяў.
Паспяховае кланаванне асноўнага рэпазіторыя не правярае яго падмодулі. Падмодуль — іншы рэпазіторый Git, магчыма на іншым хосце і з іншым транспартам.
Пачніце з чытання абвешчаных URL:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Бацькоўскі рэпазіторый, атрыманы праз HTTPS, можа ўтрымліваць падмодуль з git@host:. Налада HTTP-проксі не настройвае гэтае злучэнне SSH. Адносныя URL падмодуляў таксама трэба вырашаць адносна адпаведнага remote суперпраекта, а не вэб-адраса, які вы меркавалі з назвы праекта.
Лакальныя налады маюць межы дзеяння
Лакальны запіс http.proxy належыць рэпазіторыю, у канфігурацыйным файле якога ён знаходзіцца. Не лічыце, што праверка толькі бацькоўскага рэпазіторыя паказвае ўсе дзейсныя налады ў ініцыялізаваным даччыным.
Каб часова перавызначыць HTTPS-проксі для рэкурсіўнага абнаўлення, можна перадаць канфігурацыю Git у камандным радку гэтаму выкліку:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Замяніце прыкладны адрас. Для публічных падмодуляў HTTPS на маршруце, дзе дазволеныя публічныя проксі, спіс HTTP-проксі дае кандыдатныя адрасы. Гэта не ператварае URL падмодуляў SSH у HTTPS; калі маршрут нечаканы, варта праверыць і больш канкрэтную канфігурацыю для URL.
Калі запісаны URL змяніўся
Git рэгіструе канфігурацыю падмодуля лакальна падчас ініцыялізацыі. Калі URL падмодуля ў праекце змяніўся, параўнайце бягучае абвяшчэнне з лакальна зарэгістраваным значэннем, перш чым вырашаць, што проксі не працуе. Дакументаваная аперацыя sync абнаўляе зарэгістраваныя URL з абвяшчэння праекта; сама яна не з’яўляецца наладай сеткавага проксі.
Пры збоях укладзеных падмодуляў адзначце дакладны шлях і remote з паведамлення пра памылку. Рэкурсіўная аперацыя можа звяртацца да некалькіх хостаў; унутранаму можа спатрэбіцца выключэнне для прамога злучэння, пакуль публічны выкарыстоўвае проксі.
Аддзяляйце памылкі транспарту ад памылак рэпазіторыя. Недаступны commit, адмова рэпазіторыя ў доступе і збой злучэння з проксі — розныя прычыны аднаго агульнага выніку «submodule update failed».