ለ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 ፕሮክሲ ዝርዝር እጩ አድራሻዎችን ይሰጣል። ይህ SSH ንዑስ ሞጁል URLዎችን ወደ HTTPS አይቀይርም፤ የተመረጠው መንገድ ካልተጠበቀ በURL ላይ የተመሰረተ የበለጠ ዝርዝር ቅንብርም መመርመር አለበት።
የተመዘገበው URL ሲቀየር
Git በማስጀመር ጊዜ የንዑስ ሞጁል ቅንብርን በአካባቢ ይመዘግባል። የፕሮጀክቱ ንዑስ ሞጁል URL ከተቀየረ፣ ፕሮክሲው አይሰራም ከማለትዎ በፊት አሁን የተገለጸውን ከአካባቢው የተመዘገበ እሴት ጋር ያወዳድሩ። በሰነዱ ያለው sync እርምጃ የተመዘገቡ URLዎችን ከፕሮጀክቱ መግለጫ ያዘምናል፤ ራሱ የኔትወርክ ፕሮክሲ ቅንብር አይደለም።
በተደራረቡ ንዑስ ሞጁሎች ስህተት ሲከሰት፣ በስህተቱ የተጠቀሰውን ትክክለኛ ዱካና remote ይመዝግቡ። ተደጋጋሚ ንዑስ እርምጃ ብዙ አስተናጋጆችን ሊያገናኝ ይችላል፤ የሕዝብ አስተናጋጅ ፕሮክሲ ሲጠቀም ውስጣዊ አስተናጋጅ ቀጥታ ልዩ ፈቃድ ሊፈልግ ይችላል።
የማጓጓዣ ስህተቶችን ከማከማቻ ስህተቶች ይለዩ። የማይገኝ commit፣ ማከማቻው መዳረስን መከልከሉና ወደ ፕሮክሲ መገናኘት አለመቻል ሁሉም ‘submodule update failed’ ሊያስብሉ ይችላሉ፣ ግን ምክንያቶቻቸው የተለያዩ ናቸው።