Git 2.39 ماخذ ڪنٽرول ڇڏڻ

ٻن مهينن جي ترقي کان پوء، ورهايل ماخذ ڪنٽرول سسٽم Git 2.39 جاري ڪيو ويو آهي. Git هڪ تمام مشهور، قابل اعتماد ۽ اعلي ڪارڪردگي وارو نسخو ڪنٽرول سسٽم آهي، جيڪو برانچنگ ۽ ضم ڪرڻ جي بنياد تي لچڪدار غير لڪير ترقياتي اوزار مهيا ڪري ٿو. تاريخ جي سالميت کي يقيني بڻائڻ ۽ اڳڀرائي واري تبديلين جي مزاحمت کي يقيني بڻائڻ لاءِ، هر ڪمٽمينٽ ۾ پوري پوئين تاريخ جي واضح هشنگ استعمال ڪئي ويندي آهي؛ اهو پڻ ممڪن آهي ته انفرادي ٽيگ جي تصديق ڪرڻ ۽ ڊولپرز جي ڊجيٽل دستخطن سان ڪم ڪيو وڃي.

پوئين رليز جي مقابلي ۾، نئين نسخي ۾ 483 تبديليون شامل آهن، 86 ڊولپرز جي شموليت سان تيار ڪيل، جن مان 31 پهريون ڀيرو ترقي ۾ حصو ورتو. مکيه جدت:

  • ”گٽ شارٽ لاگ“ ڪمانڊ، تبديلين جي تاريخ مان انگن اکرن سان خلاصو ڏيکارڻ لاءِ ٺهيل آهي، ”-گروپ“ اختيار شامل ڪيو ويو آهي صوابديدي گروپن جي ڪمٽمنٽ لاءِ فيلڊز طرفان محدود ناهي ليکڪ يا ڪميٽر تائين. مثال طور، تبديلين جي تعداد بابت معلومات سان گڏ ڊولپرز جي فهرست ڏيکارڻ لاءِ، "Co-Authored-by" فيلڊ ۾ ذڪر ڪيل مددگارن کي مدنظر رکندي، توهان ڪمانڊ استعمال ڪري سگهو ٿا: git shortlog -ns --group=author - -گروپ = ٽريلر: گڏيل ليکڪ پاران

    شارٽ لاگ آئوٽ کي فارميٽنگ جي وضاحت ڪندڙن کي استعمال ڪندي گڏ ڪري سگھجي ٿو، ۽ "--گروپ" اختيار پيچيده رپورٽن جي ٺاھڻ کي خاص طور تي آسان بڻائي سگھي ٿو ۽ اضافي ترتيب ڏيڻ واري حڪمن جي ضرورت کي ختم ڪري سگھي ٿو. مثال طور، معلومات سان گڏ رپورٽ ٺاهڻ لاءِ ته هر مهيني ۾ ڏنل رليز لاءِ ڪيترا ڪمٽ قبول ڪيا ويا، توهان وضاحت ڪري سگهو ٿا: git shortlog v2.38.0.. -date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 اڳي، ساڳيو آپريشن ڪرڻ لاءِ ضروري هوندو هو ته ترتيب ۽ يونيڪ يوٽيلٽيز استعمال ڪرڻ گهرجن: git log v2.38.0. .. -تاريخ='فارميٽ:%Y -%m' -فارميٽ='%cd' | ترتيب | uniq -c

  • "کرفٽ پيڪ" ميڪانيزم جون صلاحيتون، جيڪي ناقابل رسائي شين کي پيڪنگ ڪرڻ لاءِ ٺهيل آهن جيڪي مخزن ۾ نه آهن (شاخن يا ٽيگ جو حوالو نه ڏنو ويو آهي)، وڌايو ويو آهي. غير رسيبل شيون ڪچري جي ڪليڪٽر طرفان ڊهي وينديون آهن، پر نسل جي حالتن کان بچڻ لاءِ حذف ٿيڻ کان اڳ هڪ خاص وقت تائين مخزن ۾ رهنديون آهن. "ڪرفٽ پيڪ" ميڪانيزم توهان کي اجازت ڏئي ٿو ته سڀني ناقابل رسائي شين کي هڪ پيڪ فائل ۾ ذخيرو ڪريو، ۽ هر شئي جي ترميمي وقت تي ڊيٽا کي هڪ الڳ جدول ۾، هڪ الڳ فائل ۾ ".mtimes" ايڪسٽينشن سان ذخيرو ٿيل آهي، انهي ڪري اهي اهي ڪندا. ڪل ترميمي وقت سان اوورليپ نه ٿيو.

    وقت جي ڊگھائي جيڪا ناقابل رسائي شيون ريپوزٽري ۾ رهنديون آهن ان کان اڳ جو اهي اصل ۾ حذف ٿي وڃن “—prune=” آپشن ذريعي " جڏهن ته، حذف ڪرڻ کان اڳ دير ڪرڻ هڪ انتهائي مؤثر ۽ عملي طريقو آهي ته جيئن نسل جي حالتن جي ڪري مخزن جي ڪرپشن کي روڪڻ لاء، اهو 100٪ قابل اعتماد ناهي. خراب ٿيل مخزن کي بحال ڪرڻ کي آسان بڻائڻ لاءِ، نئون رليز گم ٿيل شيون محفوظ ڪرڻ جي صلاحيت مهيا ڪري ٿو "--expire-to" اختيار کي "گٽ ريپڪ" ڪمانڊ ۾ شامل ڪندي، جيڪو توهان کي خارجي ٺاهڻ لاءِ فائل بيان ڪرڻ جي اجازت ڏئي ٿو. سڀني ختم ٿيل شين جي ڪاپي. مثال طور، ناقابل رسائي شيون محفوظ ڪرڻ لاءِ جيڪي گذريل 5 منٽن ۾ backup.git فائل ۾ تبديل نه ٿيا آهن، توهان استعمال ڪري سگهو ٿا حڪم: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • خاص طور تي وڌيو ويو (70٪ تائين) ”گٽ گريپ-ڪيشڊ“ آپريشن جي رفتار جڏهن علائقن ۾ ڳولهي رهيا آهن جيڪي جزوي ڪلوننگ استعمال ڪن ٿا (اسپارس-چڪ آئوٽ) ۽ جن لاءِ جزوي انڊيڪس (اسپارس انڊيڪس) آهن. اڳي، جڏهن "-cached" اختيار جي وضاحت ڪئي وئي، ڳولا ڪئي وئي پهرين باقاعده انڊيڪس ۾، ۽ پوء جزوي ۾، جنهن جي نتيجي ۾ قابل ذڪر دير ٿي وئي جڏهن وڏي ذخيرو ۾ ڳولها.
  • "گٽ پش" آپريشن دوران مخزن ۾ رکڻ کان اڳ نون شين جي مطابقت جي سرور جي تصديق کي تيز ڪيو ويو آهي. صرف اعلان ڪيل لنڪس لاءِ اڪائونٽنگ تي سوئچ ڪرڻ سان جڏهن چيڪ ڪيو وڃي ٿو، ٽيسٽ ريپوزٽري ۾ 7 ملين لنڪس سان، جن مان صرف 3٪ پش آپريشن سان ڍڪيل آهن، ڪيل اصلاحن کي اجازت ڏني وئي ته چڪاس جي وقت کي 4.5 ڀيرا گھٽائي.
  • ڪوڊ ۾ امڪاني انٽيجر اوور فلوز کان بچائڻ لاءِ، ”گٽ لاڳو“ ڪمانڊ پيچ جي وڌ ۾ وڌ سائيز کي محدود ڪري ٿو جيڪي پروسيس ڪري سگھجن ٿيون. جيڪڏهن پيچ جي سائيز 1 GB کان وڌيڪ آهي، هڪ غلطي هاڻي ڏيکاري ويندي.
  • امڪاني نقصانن کان بچاءَ لاءِ، تبديليون ڪيون ويون آھن غير ضروري معلومات کي صاف ڪرڻ لاءِ ھيڊر سيٽ کان جڏھن h2h3 ماڊل استعمال ڪندي GIT_TRACE_CURL=1 يا GIT_CURL_VERBOSE=1 آپشن سان گڏ HTTP/2.
  • جڏهن ڪنهن برانچ تي چيڪ آئوٽ ڪري رهيا آهيو جيڪا ٻي برانچ سان علامتي ڪڙي آهي، ”گٽ سمبلڪ-ريف هيڊ“ ڪمانڊ هاڻي سملنڪ جي نالي بجاءِ ٽارگيٽ برانچ جو نالو ڏيکاري ٿو.
  • شامل ڪيل سپورٽ @{-1} دليل لاءِ “--edit-description” آپشن (“git branch —edit-description @{-1}”) اڳوڻي برانچ جي وضاحت کي ايڊٽ ڪرڻ لاءِ.
  • شامل ڪيو ويو "git merge-tree --stdin" حڪم معياري ان پٽ ذريعي اختيارن جي لسٽ پاس ڪرڻ لاءِ.
  • نيٽ ورڪ فائل سسٽم تي، fsmonitor handler، جيڪو فائل سسٽم ۾ تبديلين جي نگراني ڪندو آهي، ڊفالٽ طور تي بند ٿيل آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو