Git 2.41 سورس ڪنٽرول سسٽم موجود آهي

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

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

  • نه پهچندڙ شين جي بهتر هينڊلنگ جيڪي مخزن ۾ نه آهن (شاخن يا ٽيگ جي حوالي سان نه آهن). غير رسيبل شيون ڪچري جي ڪليڪٽر طرفان ڊهي وينديون آهن، پر نسل جي حالتن کان بچڻ لاءِ حذف ٿيڻ کان اڳ هڪ خاص وقت تائين مخزن ۾ رهنديون آهن. غير رسيپشن شين جي واقعن جي مدت کي ٽريڪ ڪرڻ لاء، اهو ضروري آهي ته انهن سان ٽيگ ڳنڍڻ لاء هڪجهڙائي واري شين جي تبديلي جي وقت سان، جيڪي انهن کي هڪ پيڪ فائل ۾ محفوظ ڪرڻ جي اجازت نه ڏيندا آهن، جنهن ۾ سڀني شين جو هڪ عام تبديلي وقت آهي. اڳي، هر ناقابل رسائي شئي کي هڪ الڳ فائل ۾ محفوظ ڪيو ويندو هو، جنهن جي ڪري مسئلا پيدا ٿيندا هئا جڏهن اتي هڪ وڏي تعداد ۾ تازيون ناقابل رسائي شيون هيون جيڪي اڃا تائين حذف ڪرڻ جي لائق نه هيون. نئين رليز ۾، "ڪرفٽ پيڪ" ميڪانيزم ڊفالٽ طور استعمال ڪيو ويندو آهي ناقابل رسائي شين کي پيڪ ڪرڻ لاءِ، جيڪو توهان کي اجازت ڏئي ٿو ته سڀني ناقابل رسائي شين کي هڪ پيڪ فائل ۾ ذخيرو ڪرڻ لاءِ، ۽ هر شئي جي تبديليءَ واري وقت تي ڊيٽا هڪ الڳ جدول ۾ ظاهر ٿئي ٿي، ذخيرو ٿيل. ايڪسٽينشن “.mtimes” سان فائل ۾ ۽ ايڪسٽينشن “.idx” سان انڊيڪس فائل استعمال ڪندي ڳنڍيل آهي.
    Git 2.41 سورس ڪنٽرول سسٽم موجود آهي
  • پيڪ فائلن لاءِ ڊسڪ تي ريورس انڊيڪس برقرار رکڻ ڊفالٽ طور تي فعال ٿيل آهي. جڏهن torvalds/linux repository تي جاچ ڪندي، ريورس انڊيڪس جي استعمال کي ممڪن بڻايو ويو ته وسيلن جي شدت واري ”گٽ پُش“ عملن کي 1.49 ڀيرا تيز ڪيو وڃي، ۽ سادي عملن جهڙوڪ ”گٽ ڪيٽ-“ استعمال ڪندي هڪ شئي جي سائيز کي ڳڻڻ. فائل —batch='%(objectsize:disk)' "77 ڀيرا. فائلون (“.rev”) ريورس انڊيڪس سان گڏ “.git/objects/pack” ڊاريڪٽري ۾ مخزن اندر محفوظ ڪيون وينديون.

    ياد رهي ته Git سڀني ڊيٽا کي شيون جي صورت ۾ محفوظ ڪري ٿو، جيڪي الڳ فائلن ۾ واقع آهن. مخزن سان ڪم ڪرڻ جي ڪارڪردگيءَ کي وڌائڻ لاءِ، شيون اضافي طور تي پيڪ فائلن ۾ رکيل هونديون آهن، جن ۾ معلومات هڪ ٻئي جي پٺيان ايندڙ شين جي وهڪري جي صورت ۾ پيش ڪئي ويندي آهي. حڪم). ھر پيڪ فائل لاءِ، ھڪ انڊيڪس فائل (.idx) ٺاھي ويندي آھي، جيڪا توھان کي تمام تيزيءَ سان پيڪ فائل ۾ آفسيٽ جو تعين ڪرڻ جي اجازت ڏئي ٿي جنھن ۾ ڏنل اعتراض کي ذخيرو ٿيل آھي اعتراض جي سڃاڻپ ڪندڙ استعمال ڪندي.

    نئين رليز ۾ شامل ريورس انڊيڪس جو مقصد پيڪ فائل ۾ اعتراض جي جڳھ بابت معلومات کان اعتراض جي سڃاڻپ ڪندڙ کي طئي ڪرڻ جي عمل کي بهتر ڪرڻ آهي. اڳي، اهڙي تبديلي اڏام تي ڪئي ويندي هئي جڏهن ته پيڪ فائل کي پارس ڪيو ويندو هو ۽ صرف ميموري ۾ محفوظ ڪيو ويندو هو، جنهن ڪري ساڳئي انڊيڪس کي ٻيهر استعمال ڪرڻ جي اجازت نه هوندي هئي ۽ انڊيڪس کي هر دفعي پيدا ڪرڻ تي مجبور ڪيو ويندو هو. هڪ انڊيڪس ٺاهڻ جو عمل هيٺ اچي ٿو اعتراض جي پوزيشن جوڙن جي هڪ صف کي تعمير ڪرڻ ۽ ان کي ترتيب سان ترتيب ڏيڻ، جيڪو وڏي پيڪ فائلن لاءِ ڊگهو وقت وٺي سگھي ٿو.

    مثال طور، شين جي مواد کي ظاهر ڪرڻ لاء هڪ آپريشن، جيڪو سڌو انڊيڪس استعمال ڪري ٿو، 62 ڀيرا تيز هو هڪ آپريشن کان شين جي سائيز کي ظاهر ڪرڻ لاء، جنهن جي لاء پوزيشن کان اعتراض ڊيٽا کي ترتيب نه ڏني وئي هئي. ريورس انڊيڪس استعمال ڪرڻ کان پوء، انهن عملن کي لڳ ڀڳ ساڳئي وقت وٺڻ شروع ڪيو. ريورس انڊيڪسس پڻ توهان کي اجازت ڏين ٿا آبجیکٹ موڪلڻ واري عمل کي تيز ڪرڻ جڏهن ته عمل درآمد ڪندي فچ ۽ پش ڪمانڊ سڌو سنئون ڊسڪ مان تيار ٿيل ڊيٽا کي منتقل ڪندي.

    Git 2.41 سورس ڪنٽرول سسٽم موجود آهي

  • "تصديق مددگار" پروٽوڪول، استعمال ڪيو ويو سندن کي منتقل ڪرڻ لاءِ جڏهن محدود رسائي سان ريپوزٽريز تائين رسائي حاصل ڪرڻ لاءِ، WWW-Authenticate هيڊرز کي سندي هينڊلر ۽ خدمت جي وچ ۾ منتقل ڪرڻ لاءِ مدد شامل ڪئي آهي جنهن ۾ تصديق ڪئي وئي آهي. WWW-Authenticate هيڊر لاءِ سپورٽ توهان کي اجازت ڏئي ٿي OAuth اسڪوپ پيرا ميٽرز کي پاس ڪرڻ جي لاءِ صارف جي رسائي جي وڌيڪ گرينولر علحدگي لاءِ مخزن تائين رسائي ۽ درخواستن لاءِ دستياب اسڪوپس جي حد بندي.
  • شامل ڪيو ويو فارميٽنگ آپشن "%(ahead-behind:" for-each-ref command: )"، جيڪو توهان کي فوري طور تي معلومات حاصل ڪرڻ جي اجازت ڏئي ٿو ڪنهن خاص شاخ ۾ موجود يا غير حاضر ڪمن جي تعداد بابت، ٻي شاخ سان واسطو رکي ٿو (ڪيترو هڪ شاخ پوئتي آهي يا اڳتي وڌڻ واري سطح تي). اڳي، اهڙي معلومات حاصل ڪرڻ لاءِ، توهان کي ٻه الڳ ڪمانڊ هلائڻ گهرجن: “git rev-list —count main..my-feature” برانچ لاءِ منفرد ڪمنٽس جو تعداد حاصل ڪرڻ لاءِ ۽ “git rev-list —count my-feature ..main" نمبر حاصل ڪرڻ لاءِ گم ٿيل ڪمٽس. ھاڻي اھڙين حسابن کي ھڪڙي ڪمانڊ تائين گھٽائي سگھجي ٿو، جيڪو ھينڊلر جي لکڻ کي آسان بڻائي ٿو ۽ عمل جي وقت کي گھٽائي ٿو. مثال طور، انهن شاخن کي ڏيکارڻ لاءِ جن کي ضم نه ڪيو ويو آهي ۽ اندازو لڳايو ته اهي مکيه شاخ جي پويان آهن يا اڳتي، توهان استعمال ڪري سگهو ٿا هڪ-لائنر: $ git for-each-ref —no-merged=origin/HEAD \ —فارميٽ ='%(refname:short) %(ahead-bihind:origin/HEAD)' \refs/heads/tb/ | column -tb/cruft-extra-tips 2 96 tb/for-each-ref-exclude 16 96 tb/roaring-bitmaps 47 3 بجاءِ اڳئين استعمال ٿيل اسڪرپٽ جي، جيڪا 17 ڀيرا وڌيڪ سست هلندي آهي: $git for-each-ref - فارميٽ='%(refname:short)' -no-merged=origin/HEAD \ refs/heads/tb | جڏهن پڙهو ref do ahead="$(git rev-list -count origin/HEAD..$ref)" پويان="$(git rev-list -count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ahead" "$behind" ٿي ويو | ڪالمن -tb/cruft-extra-Tips 2 96 tb/for-each-ref-exclude 16 96 tb/roaring-bitmaps 47 3
  • "-porcelain" اختيار کي "git fetch" ڪمانڊ ۾ شامل ڪيو ويو آھي، جڏھن بيان ڪيو ويو آھي، ٻاھر ٺاھيو ويندو آھي فارميٽ ۾. "، گهٽ پڙهڻ لائق، پر لکت ۾ پارس ڪرڻ لاءِ وڌيڪ آسان.
  • "fetch.hideRefs" سيٽنگ شامل ڪئي وئي، جيڪا توھان کي اجازت ڏئي ٿي "git fetch" عملن کي تيز ڪرڻ جي ذريعي ڪجھ حوالن کي لڪائڻ جي مقامي ريپوزٽري ۾ چيڪ ڪرڻ جي مرحلي تي ته سرور ھڪڙي مڪمل سيٽ موڪليو آھي، جيڪو وقت بچائيندو آھي. چيڪ کي محدود ڪرڻ صرف انهن سرورن تائين جن مان ڊيٽا سڌو سنئون حاصل ڪئي ويندي آهي. مثال طور، جڏھن ھڪ سسٽم تي ٽيسٽ ھلائي رھيو آھي ريپوزٽريز سان جنھن ۾ وڏي تعداد ۾ ٽريڪ ٿيل خارجي لنڪس شامل آھن، سواءِ سڀني لنڪن کي جن کي ھدف سرور $remote کي ايڊريس ڪيو ويو آھي، گٽ حاصل ڪرڻ جي عمل کي 20 منٽ کان 30 سيڪنڊن تائين گھٽائي ٿو. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \ آڻڻ $remote
  • "git fsck" حڪم بدعنواني، چيڪسم تعميل، ۽ رسائي جي بٽ ميپس ۽ ريورس انڊيڪسز ۾ قدر جي درستي جي جانچ ڪرڻ جي صلاحيت مهيا ڪري ٿي.
  • "git clone --local" حڪم ھاڻي ھڪڙي نقص ڏيکاري ٿو جڏھن ھڪڙي مخزن مان نقل ڪرڻ جي ڪوشش ڪئي وڃي جيڪا $GIT_DIR جي اندر سملنڪس تي مشتمل آھي.

جو ذريعو: opennet.ru

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