گٹ 2.37 سورس کنٹرول ریلیز

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

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

  • جزوی اشاریہ جات (اسپارس انڈیکس) کا طریقہ کار، ذخیرہ کے صرف ایک حصے کا احاطہ کرتا ہے، وسیع پیمانے پر استعمال کے لیے تیار لایا گیا ہے۔ جزوی اشاریہ جات کارکردگی کو بہتر بنا سکتے ہیں اور ذخیرہ خانوں میں جگہ بچا سکتے ہیں جو جزوی کلوننگ (سپرس چیک آؤٹ) آپریشنز انجام دیتے ہیں یا ریپوزٹری کی نامکمل کاپی کے ساتھ کام کرتے ہیں۔ نئی ریلیز گٹ شو، گٹ اسپارس چیک آؤٹ، اور گٹ اسٹاش کمانڈز میں جزوی اشاریہ جات کے انضمام کو مکمل کرتی ہے۔ جزوی اشاریہ جات کے استعمال سے سب سے زیادہ نمایاں کارکردگی کا فائدہ git stash کمانڈ کے ساتھ دیکھا جاتا ہے، جس نے کچھ حالات میں عملدرآمد کی رفتار میں 80% اضافہ دیکھا ہے۔
  • ناقابل رسائی اشیاء کو پیک کرنے کے لیے ایک نیا "کرفٹ پیک" میکانزم نافذ کیا گیا ہے جن کا ریپوزٹری میں حوالہ نہیں دیا گیا ہے (شاخوں یا ٹیگز کے ذریعہ حوالہ نہیں دیا گیا ہے)۔ ناقابل رسائی اشیاء کو کوڑا اٹھانے والے کے ذریعے حذف کر دیا جاتا ہے، لیکن ریس کے حالات سے بچنے کے لیے حذف کیے جانے سے پہلے وہ ایک مخصوص وقت کے لیے ذخیرہ میں رہتی ہیں۔ ناقابل رسائی اشیاء کے وقوع پذیر ہونے کی مدت کو ٹریک کرنے کے لیے، ایک جیسی اشیاء کی تبدیلی کے وقت کے ساتھ ان کے ساتھ ٹیگ منسلک کرنا ضروری ہے، جو انہیں ایک پیک فائل میں ذخیرہ کرنے کی اجازت نہیں دیتا ہے جس میں تمام اشیاء کی تبدیلی کا وقت مشترکہ ہوتا ہے۔ پہلے، ہر ایک آبجیکٹ کو علیحدہ فائل میں محفوظ کرنے سے مسائل پیدا ہوتے تھے جب بڑی تعداد میں تازہ، ناقابل رسائی اشیاء موجود تھیں جو ابھی تک حذف کرنے کے اہل نہیں تھیں۔ مجوزہ "کرفٹ پیک" میکانزم آپ کو ایک پیک فائل میں تمام ناقابل رسائی اشیاء کو ذخیرہ کرنے کی اجازت دیتا ہے، اور ".mtimes" ایکسٹینشن کے ساتھ فائل میں محفوظ کردہ ایک علیحدہ جدول میں ہر چیز کے ترمیمی وقت پر ڈیٹا کی عکاسی کرتا ہے۔
  • ونڈوز اور میک او ایس کے لیے، فائل سسٹم میں ہونے والی تبدیلیوں کو ٹریک کرنے کے لیے ایک بلٹ ان میکانزم موجود ہے، جو آپ کو "گٹ اسٹیٹس" جیسے آپریشنز انجام دیتے وقت پوری ورکنگ ڈائرکٹری پر تکرار کرنے سے بچنے کی اجازت دیتا ہے۔ پہلے، تبدیلیوں کو ٹریک کرنے کے لیے، FS میں تبدیلیوں سے باخبر رہنے کے لیے بیرونی یوٹیلیٹیز، جیسے واچ مین، کو ہکس کے ذریعے منسلک کیا جا سکتا تھا، لیکن اس کے لیے اضافی پروگراموں اور کنفیگریشن کی تنصیب کی ضرورت تھی۔ اب مخصوص فنکشنلٹی بلٹ ان ہے اور اسے "git config core.fsmonitor true" کمانڈ کے ساتھ فعال کیا جا سکتا ہے۔
  • "git sparse-checkout" کمانڈ میں، "—cone" موڈ کے متبادل کے لیے سپورٹ، جزوی کلوننگ کے لیے ٹیمپلیٹس کی وضاحت کے طریقہ کار کو متروک قرار دیا گیا ہے، جو کہ اجازت دیتا ہے کہ ذخیرہ کے اس حصے کا تعین کرتے وقت جو کلوننگ آپریشن، ".gitignore" نحو کا استعمال کرتے ہوئے انفرادی فائلوں کی فہرست بنانے کے لیے، جو جزوی اشاریہ جات کی اصلاح کے لیے استعمال کی اجازت نہیں دیتا ہے۔
  • fsync() کال کو ڈسک میں تبدیلیوں کو فلش کرنے کے لیے ترتیب دینے میں لچک میں اضافہ۔ "بیچ" مطابقت پذیری کی حکمت عملی کے لیے تعاون کو "core.fsyncMethod" پیرامیٹر میں شامل کیا گیا ہے، جو کہ رائٹ بیک کیش میں تبدیلیاں جمع کرکے انفرادی فائلوں کی ایک بڑی تعداد کو لکھتے وقت کام کو تیز کرنے کی اجازت دیتا ہے، جسے ایک fsync() کے ذریعے دوبارہ ترتیب دیا جاتا ہے۔ کال ٹیسٹ، جس کے نتیجے میں "گٹ ایڈ" کمانڈ کا استعمال کرتے ہوئے 500 فائلیں شامل کی گئیں، نیا موڈ فعال ہونے پر 0.15 سیکنڈ میں مکمل ہو گیا، جب کہ fsync() کو کال کرنے میں ہر فائل کے لیے 1.88 سیکنڈ لگے، اور fsync استعمال کیے بغیر - 0.06 سیکنڈ۔
  • برانچ ٹراورسل کمانڈز جیسے "گٹ لاگ" اور "گٹ ریو لسٹ" کے پاس اب ایک آپشن ہے "-سب سے فلٹر = ایکس" جو آپ کو "X" سے پرانے کمٹ کے بارے میں معلومات کو فلٹر کرنے کی اجازت دیتا ہے۔ "- سے" آپشن کے برعکس، نئی کمانڈ کو فلٹر کے طور پر لاگو کیا جاتا ہے جو مخصوص وقت سے زیادہ پرانے کمٹ کے بعد تلاش کو نہیں روکتا ہے۔
  • "گٹ ریموٹ" کمانڈ میں، "-v" پرچم کی وضاحت کرتے وقت، ذخیرہ کے جزوی کلون کے بارے میں معلومات ظاہر ہوتی ہے۔
  • "transfer.credentialsInUrl" ترتیب شامل کی گئی، جو "انتباہ"، "ڈائی" اور "اجازت" کی اقدار لے سکتی ہے۔ اگر پیرامیٹر میں بیان کیا گیا ہے "ریموٹ۔ .url" سادہ متن کی اسناد، "فیچ" یا "پش" آپریشن انجام دینے کی کوشش ایک غلطی کے ساتھ ناکام ہو جائے گی اگر "transfer.credentialsInUrl" کی ترتیب "ڈائی" پر سیٹ ہو، یا اگر "وارن" پر سیٹ ہو تو وارننگ۔
  • پہلے سے طے شدہ طور پر، پرل سے C میں دوبارہ لکھی گئی "git add -i" کمانڈ کے انٹرایکٹو موڈ کا نیا نفاذ فعال ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں