Git submodullari uchun proksi yo‘naltirish
Asosiy Git checkout proksi orqali ishlasa, bolalar ishlamasa, submodul URLlari, transport turlari va repository sozlamalarini tekshiring.
Asosiy repository muvaffaqiyatli klonlangani uning submodullarini tekshirmaydi. Submodul boshqa Git repository bo‘lib, boshqa hostda va boshqa transportdan foydalanishi mumkin.
Avval e’lon qilingan URLlarni o‘qing:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
HTTPS orqali olingan ota repository git@host: ishlatadigan submodulni o‘z ichiga olishi mumkin. HTTP proksi sozlamasi bu SSH ulanishini sozlamaydi. Nisbiy submodul URLlari ham loyiha nomidan taxmin qilingan istalgan veb manzilga emas, superprojectning mos remote manziliga nisbatan yechilishi kerak.
Repository mahalliy sozlamalarining qamrovi bor
Mahalliy http.proxy yozuvi uni o‘z ichiga olgan konfiguratsiya fayliga ega repositoryga tegishli. Faqat ota repositoryni tekshirish initialized child repository ichidagi barcha samarali sozlamalarni ko‘rsatadi deb o‘ylamang.
Rekursiv yangilashda HTTPS proksini vaqtincha almashtirish uchun Git buyruq satri konfiguratsiyasini shu chaqiruvga berish mumkin:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Misol endpointni almashtiring. Public proksilarga ruxsat berilgan yo‘ldagi public HTTPS submodullar uchun HTTP proksi ro‘yxati nomzod manzillarni beradi. Bu submodul SSH URLlarini HTTPSga aylantirmaydi; tanlangan yo‘l kutilmagan bo‘lsa, URLga xos konfiguratsiyani ham tekshiring.
Ro‘yxatdan o‘tgan URL o‘zgarganda
Git ishga tushirish vaqtida submodul konfiguratsiyasini mahalliy ro‘yxatga oladi. Loyihadagi submodul URLi o‘zgargan bo‘lsa, proksi ishlamayapti degan xulosadan oldin joriy e’lonni mahalliy qiymat bilan solishtiring. Hujjatlangan sync amali loyiha e’lonidan ro‘yxatdan o‘tgan URLlarni yangilaydi; bu o‘zi tarmoq proksi sozlamasi emas.
Ichma-ich xatolarda aniq submodul yo‘li va xatoda ko‘rsatilgan remotenni yozib oling. Rekursiv amal bir nechta host bilan aloqa qilishi mumkin; ichki host to‘g‘ridan-to‘g‘ri istisnoni, public host esa proksini talab qilishi mumkin.
Transport xatolarini repository xatolaridan ajrating. Mavjud bo‘lmagan commit, repository tomonidan rad etilgan kirish va proksiga ulanishning muvaffaqiyatsizligi bir xil yuqori darajadagi “submodul yangilanishi muvaffaqiyatsiz” natijasining turli sabablaridir.