Git துணைமாட்யூல்களுக்கான proxy routing
முக்கிய Git checkout proxy வழியாக இயங்கும் போது, துணைமாட்யூல்கள் இயங்காததற்கான URL, transport மற்றும் repository அமைப்புகளை ஆய்வு செய்யுங்கள்.
முக்கிய repository வெற்றிகரமாக clone ஆனது அதன் துணைமாட்யூல்களைச் சோதிக்காது. துணைமாட்யூல் மற்றொரு Git repository; அது வேறு host-ல் இருக்கலாம், வேறு transport-ஐ பயன்படுத்தலாம்.
அறிவிக்கப்பட்ட URL-களை முதலில் படியுங்கள்:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
HTTPS வழியாக பெறப்பட்ட parent repository-யில் git@host: பயன்படுத்தும் துணைமாட்யூல் இருக்கலாம். HTTP proxy அமைப்பு அந்த SSH இணைப்பை அமைக்காது. தொடர்புடைய துணைமாட்யூல் URL-களும் project பெயரிலிருந்து நீங்கள் ஊகித்த வலை முகவரிக்கு அல்ல, superproject-ன் சரியான remote-ஐ அடிப்படையாகக் கொண்டு தீர்க்கப்பட வேண்டும்.
Repository உள்ளூர் அமைப்புகளுக்கு தனி வரம்பு உண்டு
உள்ளூர் http.proxy பதிவு, அதை கொண்டுள்ள configuration file உடைய repository-க்கு சொந்தமானது. Parent-ஐ மட்டும் ஆய்வு செய்தால் initialized child repository-யில் பயன்படும் எல்லா அமைப்புகளும் தெரியும் என்று கருத வேண்டாம்.
Recursive update-ல் HTTPS proxy-யை தற்காலிகமாக மாற்ற, Git command-line configuration-ஐ அந்த invocation-க்கு வழங்கலாம்:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
உதாரண endpoint-ஐ மாற்றுங்கள். Public proxy-களை அனுமதிக்கும் பாதையில் உள்ள public HTTPS துணைமாட்யூல்களுக்கு, HTTP proxy பட்டியல் சாத்தியமான முகவரிகளை வழங்குகிறது. இது துணைமாட்யூல்களின் SSH URL-களை HTTPS ஆக மாற்றாது; தேர்ந்தெடுக்கப்பட்ட பாதை எதிர்பாராததாக இருந்தால் URL சார்ந்த குறிப்பிட்ட அமைப்பையும் ஆய்வு செய்யுங்கள்.
பதிவு செய்யப்பட்ட URL மாறியபோது
Initialization போது Git துணைமாட்யூல் அமைப்பை உள்ளூரில் பதிவு செய்கிறது. Project-ன் துணைமாட்யூல் URL மாறியிருந்தால், proxy செயலிழந்தது என்று முடிவு செய்வதற்கு முன் தற்போதைய declaration-ஐ உள்ளூர் பதிவு மதிப்புடன் ஒப்பிடுங்கள். ஆவணப்படுத்தப்பட்ட sync operation, project declaration-இலிருந்து பதிவு செய்யப்பட்ட URL-களை புதுப்பிக்கும்; அது network proxy அமைப்பு அல்ல.
Nested failures-க்கு, பிழையில் குறிப்பிடப்பட்ட சரியான துணைமாட்யூல் பாதை மற்றும் remote-ஐ பதிவு செய்யுங்கள். Recursive operation பல host-களை தொடர்புகொள்ளலாம்; public host proxy-ஐ பயன்படுத்தும்போது internal host நேரடி விதிவிலக்கைத் தேவைப்படலாம்.
Transport பிழைகளையும் repository பிழைகளையும் பிரித்துப் பாருங்கள். கிடைக்காத commit, repository அணுகல் மறுப்பு, proxy-க்கு தோல்வியுற்ற இணைப்பு ஆகியவை “submodule update failed” என்ற ஒரே உயர்நிலை முடிவுக்கான வேறு காரணங்கள்.