تقسیم شدہ سورس کنٹرول سسٹم Git 2.25 کی ریلیز

دستیاب تقسیم شدہ سورس کنٹرول سسٹم کی رہائی Git 2.25.0. Git سب سے زیادہ مقبول، قابل اعتماد اور اعلی کارکردگی والے ورژن کنٹرول سسٹمز میں سے ایک ہے، جو برانچنگ اور انضمام پر مبنی لچکدار غیر لکیری ترقیاتی ٹولز فراہم کرتا ہے۔ تاریخ کی سالمیت کو یقینی بنانے اور سابقہ ​​تبدیلیوں کے خلاف مزاحمت کو یقینی بنانے کے لیے، ہر کمٹ میں پوری پچھلی تاریخ کی مضمر ہیشنگ کا استعمال کیا جاتا ہے؛ ڈویلپرز کے ڈیجیٹل دستخطوں کے ساتھ انفرادی ٹیگز اور کمٹ کی تصدیق کرنا بھی ممکن ہے۔

پچھلی ریلیز کے مقابلے میں، نئے ورژن میں 583 تبدیلیاں شامل ہیں، جو 84 ڈویلپرز کی شرکت سے تیار کی گئی ہیں، جن میں سے 32 نے پہلی بار ترقی میں حصہ لیا۔ اہم بدعات:

  • جزوی کلون، جو آپ کو ڈیٹا کے صرف ایک حصے کو منتقل کرنے اور مخزن کی نامکمل کاپی کے ساتھ کام کرنے کی اجازت دیتے ہیں، استحکام اور مکمل دستیابی کے قریب ہیں۔ ایک عام کلون ریپوزٹری سے تمام ڈیٹا کاپی کرتا ہے، بشمول نظرثانی کی تاریخ میں ہر فائل کا ہر ورژن۔ بہت بڑے ذخیروں کے لیے، ڈیٹا کاپی کرنے سے بینڈوتھ اور ڈسک کی جگہ میں نمایاں اضافہ ہوتا ہے، یہاں تک کہ اگر ڈویلپر صرف فائلوں کے ذیلی سیٹ میں دلچسپی رکھتا ہو۔ ورکنگ سورس ٹری کے صرف ایک حصے کو حاصل کرنے کو آسان بنانے کے لیے، نئی ریلیز تجرباتی "sparse-checkout" کمانڈ اور "clone" کمانڈ کے لیے ایک نیا "--sparse" آپشن متعارف کراتی ہے۔

    پہلے، سلیکٹیو کلوننگ کا عمل ایک ٹاسک کے ذریعے انجام دیا جاتا تھا۔ فلٹرز غیر ضروری مواد کو فلٹر کرنے کے لیے اور "--no-checkout" کا اختیار لاپتہ فائلوں کو دوبارہ بھرنے کو غیر فعال کرنے کے لیے۔ اس کے بعد، چیک آؤٹ آپریشن کرنے سے پہلے، core.sparseCheckout سیٹنگ کو فعال کرنا اور .git/info/sparse-checkout فائل میں خارج کرنے کے لیے پاتھ پیٹرن کی فہرست کی وضاحت کرنا ضروری تھا۔ مثال کے طور پر، بلابز کے بغیر کلون کرنے اور فائلوں کو گہرائی 2 یا اس سے زیادہ کی نیسٹڈ ڈائریکٹریوں سے نکالنے سے روکنے کے لیے، آپ چلا سکتے ہیں:

    git clone --filter=blob: none --no-checkout/your/repository/here repo
    $cd ریپو
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git چیک آؤٹ

    نئی "git sparse-checkout" کمانڈ کام کے بہاؤ کو نمایاں طور پر آسان بناتی ہے اور نامکمل ذخیرہ کے ساتھ کام کو منظم کرنے کے عمل کو صرف چند کمانڈز تک کم کر دیتی ہے۔

    git clone --filter=blob: none --sparse/your/repository/here repo
    git sparse-checkout set /path/to/check/out

    sparse-checkout کمانڈ آپ کو .git/info/sparse-checkout کو دستی طور پر کنفیگر کیے بغیر چیک آؤٹ (سیٹ) کے لیے راستوں کی فہرست ترتیب دینے کے ساتھ ساتھ راستوں کی موجودہ فہرست (فہرست) پرنٹ کرنے اور جزوی چیک آؤٹ کو فعال یا غیر فعال کرنے کی اجازت دیتا ہے (فعال/غیر فعال)۔

    بہت بڑے ذخیروں اور ٹیمپلیٹ کی فہرستوں کے ساتھ کام کو بہتر بنانے کے لیے، "git config core.sparseCheckoutCone"، جو اجازت شدہ پیٹرن کو محدود کرتا ہے (من مانی .gitignore پیٹرن کی بجائے، آپ یہ بتا سکتے ہیں کہ آیا دی گئی سب ڈائرکٹری میں تمام راستے اور تمام فائلوں کو چیک آؤٹ کیا جانا چاہیے)۔ مثال کے طور پر، اگر ایک بڑی ریپوزٹری میں ایک ڈائریکٹری "A/B/C" ہوتی ہے اور تمام کام ذیلی ڈائرکٹری "C" میں مرتکز ہوتے ہیں، تو جب sparseCheckout-Commanded کو سیٹ آؤٹ کیا جاتا ہے۔ A/B/C "C" کے پورے مواد کو چیک کرے گا، لیکن "A" اور "B" سے یہ صرف "C" کے ساتھ کام کرنے کے لیے ضروری حصوں کی جانچ کرے گا۔

  • دستاویزات (git rebase -h) نے "--preserve-merges" آپشن کے تمام حوالوں کو ہٹا دیا ہے، جو فرسودہ ہو چکا ہے اور اسے " کے ساتھ تبدیل کیا جانا چاہیے۔git rebase --rebase-merges".
  • میلنگ لسٹوں پر بھیجے گئے پیچ پیغامات کی پڑھنے کی اہلیت کو بہتر بنانے کے لیے، "git format-patch --cover-from-description موضوع" کا اختیار شامل کیا گیا ہے۔ جب مخصوص کیا جاتا ہے، تو یہ اختیار شاخ کی تفصیل کے متن کے پہلے پیراگراف کو پیچ سیٹ کے لیے کور لیٹر کے موضوع کے طور پر استعمال کرتا ہے۔
  • "git apply --3way" کمانڈ اور "merge.conflictStyle" ترتیب کے مشترکہ استعمال کے لیے نافذ کردہ تعاون ("git apply" اب merge.conflictStyle سے تنازعہ کی وضاحت کے انداز کو مدنظر رکھتا ہے جب کسی ریپوزٹری میں پیچ فائل کو لاگو کرنے کی کوشش کے بعد تنازعہ کو حل کیا جاتا ہے)۔
  • گٹ ڈف/گریپ --شو-فنکشن/--فنکشن-سیاق و سباق جیسے آپریشنز میں استعمال ہونے والے فنکشن ڈیفینیشن کوڈ کو گٹ پروگراموں میں فنکشن باؤنڈری کی وضاحت کرنے میں مدد کے لیے بڑھا دیا گیا ہے۔ ایلیکسیر.
  • ایک نیا آپشن "-pathspec-from-file" کو "گٹ ایڈ"، "گٹ کمٹ"، "گٹ ری سیٹ" اور دیگر کمانڈز میں شامل کیا گیا ہے، جس سے آپ کو کمانڈ لائن پر درج کرنے کے بجائے فائل یا ان پٹ اسٹریم سے راستوں کی فہرست لوڈ کرنے کی اجازت ملتی ہے۔
  • کمٹ کے دوران ڈائرکٹری کی سطح کے نام تبدیل کرنے کا پتہ لگانے کا مسئلہ حل ہو گیا ہے۔ ذیلی ڈائرکٹری کے مواد کو ریپوزٹری روٹ میں منتقل کرتے وقت یہ کھوج ناکام ہو گئی۔
  • ترمیم شدہ مواد کے انٹرایکٹو اضافے کی اجازت دیتے ہوئے دوبارہ لکھی گئی "git add -i" کمانڈ کا ابتدائی نفاذ تجویز کیا گیا ہے، جسے پرل سے C تک دوبارہ لکھا گیا ہے۔ "git add-p" کمانڈ کی اسی طرح کی دوبارہ تحریر جاری ہے۔
  • "git log --graph" کمانڈ، جو ریپوزٹری کی تبدیلی کی تاریخ کے ساتھ گراف کی ASCII امیج تیار کرتی ہے، کو ری فیکٹر کیا گیا تھا۔ اس ری فیکٹرنگ نے تاریخ کے ڈھانچے کو مسخ کیے بغیر آؤٹ پٹ کو نمایاں طور پر بہتر اور آسان بنایا، جس نے مثال کے طور پر اس مسئلے کو حل کیا جہاں گراف ٹرمینل لائن کی چوڑائی سے آگے بڑھے گا۔
  • "git log --format=.." آپشن آپ کو آؤٹ پٹ فارمیٹ کو تبدیل کرنے کی اجازت دیتا ہے،
    "@" علامت سے پہلے مخصوص کردہ ای میل ایڈریس کے صرف حصے کو ظاہر کرنے کے لیے "l/L" جھنڈوں کے لیے توسیعی حمایت (مثال کے طور پر، جب تمام ڈویلپرز کے ای میلز ایک ہی ڈومین میں ہوں)۔
  • "git submodule" کمانڈ میں "set-url" ذیلی کمانڈ شامل کی گئی۔
  • میں منتقلی کی تیاری میں ٹیسٹ کٹس کو اپ ڈیٹ کر دیا گیا ہے۔
    SHA-1 کے بجائے SHA-2 ہیشنگ الگورتھم۔

ماخذ: opennet.ru

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster