مرکزی ریپوزٹری کا کامیاب clone اس کے ذیلی ماڈیولز کو نہیں آزماتا۔ ذیلی ماڈیول ایک الگ Git ریپوزٹری ہے، ممکن ہے دوسرے host پر ہو اور ممکن ہے مختلف ٹرانسپورٹ استعمال کرے۔

اعلان کردہ URL پڑھنے سے شروع کریں:

git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive

HTTPS کے ذریعے حاصل کی گئی parent ریپوزٹری میں git@host: استعمال کرنے والا ذیلی ماڈیول ہو سکتا ہے۔ HTTP پراکسی کی ترتیب اس SSH کنکشن کو configure نہیں کرتی۔ نسبتی ذیلی ماڈیول URL کو superproject کے مناسب remote کے مطابق resolve کرنا چاہیے، نہ کہ project نام سے فرض کیے گئے کسی ویب پتے کے مطابق۔

ریپوزٹری کی مقامی ترتیبات کی اپنی حدود ہوتی ہیں

مقامی http.proxy اندراج اس ریپوزٹری سے تعلق رکھتا ہے جس کی configuration file اسے رکھتی ہے۔ صرف parent کو دیکھ کر یہ نہ سمجھیں کہ initialized child میں استعمال ہونے والی ہر مؤثر setting سامنے آ جائے گی۔

recursive update کے دوران عارضی HTTPS proxy override کے لیے Git کی command-line configuration اسی invocation کو دی جا سکتی ہے:

git -C project -c http.proxy=http://203.0.113.10:8080 \
  submodule update --init --recursive

مثالی endpoint بدلیں۔ عوامی HTTPS submodules کے لیے، جہاں عوامی proxies کی اجازت ہو، HTTP proxy list ممکنہ پتے دیتی ہے۔ یہ submodule کے SSH URL کو HTTPS میں تبدیل نہیں کرتی؛ منتخب route حیران کرے تو URL-based مخصوص configuration بھی دیکھیں۔

جب رجسٹرڈ URL بدل جائے

Git initialization کے دوران submodule configuration مقامی طور پر رجسٹر کرتا ہے۔ اگر project کا submodule URL بدل گیا ہو تو proxy کو خراب سمجھنے سے پہلے موجودہ declaration اور مقامی registered value کا موازنہ کریں۔ دستاویزی sync operation project declaration سے registered URL اپ ڈیٹ کرتا ہے؛ یہ خود network proxy setting نہیں۔

nested failures میں درست submodule path اور error میں دیا گیا remote نوٹ کریں۔ recursive operation کئی hosts سے رابطہ کر سکتی ہے؛ داخلی host کو direct exception درکار ہو سکتا ہے جبکہ عوامی host proxy استعمال کرے۔

transport errors کو repository errors سے الگ رکھیں۔ غیر دستیاب commit، repository کی access denial اور proxy سے ناکام کنکشن ایک ہی اعلیٰ سطحی “submodule update failed” نتیجے کی مختلف وجوہ ہیں۔

متعلقہ مضامین