Git alt modulları üçün proksi marşrutlaşdırması
Əsas Git deposu proksi ilə işləyib alt depolar işləmədikdə alt modul URL-lərini, nəqliyyat növlərini və depo konfiqurasiyasını yoxlayın.
Əsas deponun uğurla klonlanması onun alt modullarını sınamır. Alt modul başqa Git deposudur; başqa hostda ola və başqa nəqliyyatdan istifadə edə bilər.
Əvvəlcə elan edilmiş URL-ləri oxuyun:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
HTTPS ilə alınan ana depoda git@host: işlədən alt modul ola bilər. HTTP proksi parametri həmin SSH bağlantısını qurmur. Nisbi alt modul URL-ləri də layihə adından güman etdiyiniz veb ünvana görə deyil, üst layihənin uyğun uzaq deposuna görə həll edilməlidir.
Depoya yerli parametrlərin əhatəsi var
Yerli http.proxy qeydi konfiqurasiya faylında onu saxlayan depoya aiddir. Yalnız ana deponu yoxlamaqla başladılmış alt depodakı bütün qüvvədə olan parametrləri bildiyinizi düşünməyin.
Rekursiv yeniləmə zamanı HTTPS proksisini müvəqqəti əvəz etmək üçün Git-in əmr sətri konfiqurasiyasını həmin çağırışa verə bilərsiniz:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Nümunə son nöqtəni dəyişin. İctimai proksilərin icazəli olduğu yolda ictimai HTTPS alt modulları üçün HTTP proksi siyahısı namizəd ünvanlar verir. Bu, SSH alt modul URL-lərini HTTPS-ə çevirmir; seçilən yol gözlənilməzdirsə, daha konkret URL əsaslı konfiqurasiya da yoxlanmalıdır.
Qeydə alınmış URL dəyişdikdə
Git başlanğıc quraşdırma zamanı alt modul konfiqurasiyasını yerli qeydiyyata alır. Layihənin alt modul URL-i dəyişibsə, proksinin işləmədiyinə qərar verməzdən əvvəl cari elanı yerli qeydə alınmış dəyərlə müqayisə edin. Sənədləşdirilmiş sync əməliyyatı qeydə alınmış URL-ləri layihənin elanından yeniləyir; özü şəbəkə proksisi parametri deyil.
İç-içə uğursuzluqlarda xətada göstərilən dəqiq alt modul yolunu və uzaq deponu qeyd edin. Rekursiv əməliyyat bir neçə hosta müraciət edə bilər; ictimai host proksi işlədərkən daxili host üçün birbaşa bağlantı istisnası lazım ola bilər.
Nəqliyyat xətalarını depo xətalarından ayırın. Əlçatmayan commit, deponun girişi rədd etməsi və proksiyə bağlantının alınmaması eyni ümumi “submodule update failed” nəticəsinin fərqli səbəbləridir.