പ്രധാന റിപ്പോസിറ്ററി വിജയകരമായി ക്ലോൺ ചെയ്തത് സബ്മോഡ്യൂളുകളെ പരീക്ഷിക്കുന്നില്ല. സബ്മോഡ്യൂൾ മറ്റൊരു 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 പ്രോക്സി പട്ടിക സാധ്യതാ വിലാസങ്ങൾ നൽകുന്നു. ഇത് SSH URL-കളെ HTTPS ആക്കുന്നില്ല; തെരഞ്ഞെടുത്ത പാത അപ്രതീക്ഷിതമാണെങ്കിൽ URL-അടിസ്ഥാനത്തിലുള്ള കൂടുതൽ നിർദിഷ്ട ക്രമീകരണവും പരിശോധിക്കുക.

രജിസ്റ്റർ ചെയ്ത URL മാറിയപ്പോൾ

ആരംഭിക്കുമ്പോൾ Git സബ്മോഡ്യൂൾ ക്രമീകരണം ലോക്കലായി രജിസ്റ്റർ ചെയ്യുന്നു. പ്രോജക്ടിലെ URL മാറിയെങ്കിൽ പ്രോക്സി തകരാറിലാണെന്ന് പറയുന്നതിനുമുമ്പ് നിലവിലെ പ്രഖ്യാപനം ലോക്കൽ മൂല്യവുമായി താരതമ്യം ചെയ്യുക. രേഖപ്പെടുത്തിയ sync പ്രവർത്തനം പ്രോജക്ട് പ്രഖ്യാപനത്തിൽനിന്ന് URL-കൾ പുതുക്കുന്നു; അത് സ്വയം നെറ്റ്‌വർക്ക് പ്രോക്സി ക്രമീകരണമല്ല.

നെസ്റ്റഡ് പരാജയങ്ങളിൽ പിശക് പറയുന്ന കൃത്യമായ സബ്മോഡ്യൂൾ പാതയും remote-ഉം കുറിക്കുക. റിക്കേഴ്സീവ് പ്രവർത്തനം പല ഹോസ്റ്റുകളെയും ബന്ധപ്പെടാം; പൊതുഹോസ്റ്റ് പ്രോക്സി ഉപയോഗിക്കുമ്പോൾ ആഭ്യന്തര ഹോസ്റ്റിന് നേരിട്ടുള്ള കണക്ഷൻ ഒഴിവ് വേണ്ടിവരാം.

ട്രാൻസ്‌പോർട്ട് പിശകുകളും റിപ്പോസിറ്ററി പിശകുകളും വേർതിരിക്കുക. ലഭ്യമല്ലാത്ത commit, റിപ്പോസിറ്ററി നിരസിച്ച പ്രവേശനം, പ്രോക്സി കണക്ഷൻ പരാജയം എന്നിവ ഒരേ ‘submodule update failed’ ഫലത്തിന്റെ വ്യത്യസ്ത കാരണങ്ങളാണ്.

അനുബന്ധ ലേഖനങ്ങൾ