د Git 2.41 سرچینې کنټرول سیسټم شتون لري

د دریو میاشتو پراختیا وروسته ، د توزیع شوي سرچینې کنټرول سیسټم Git 2.41 خپور شو. Git یو له خورا مشهور ، معتبر او لوړ فعالیت نسخه کنټرول سیسټمونو څخه دی ، د شاخ کولو او ادغام پراساس انعطاف وړ غیر خطي پراختیا وسیلې چمتو کوي. د تاریخ بشپړتیا او د متقابل بدلونونو مقاومت تضمین کولو لپاره ، د ټول تیر تاریخ ضمیمه هش کول په هر ژمنې کې کارول کیږي؛ دا هم امکان لري چې د انفرادي ټاګونو تصدیق وکړئ او د پراختیا کونکو ډیجیټل لاسلیکونو سره ژمنې وکړئ.

د تیرې خپرونې په پرتله، نوې نسخه کې 542 بدلونونه شامل دي، چې د 95 پراختیا کونکو ګډون سره چمتو شوي، چې 29 یې د لومړي ځل لپاره په پراختیا کې برخه اخیستې. اصلي نوښتونه:

  • د لاس رسي وړ شیانو ښه اداره کول چې په ذخیره کې ندي حواله شوي (د څانګو یا ټاګونو لخوا حواله شوي ندي). د لاسرسي وړ شیان د کثافاتو راټولونکي لخوا حذف کیږي ، مګر د ریس شرایطو څخه مخنیوي لپاره د حذف کیدو دمخه د ټاکلي وخت لپاره په ذخیره کې پاتې کیږي. د لاس رسي وړ شیانو د پیښې د مودې تعقیبولو لپاره، دا اړینه ده چې د ورته شیانو د بدلون وخت سره د دوی سره ټاګونه ضمیمه کړئ، کوم چې دوی ته اجازه نه ورکوي چې په یوه پیک فایل کې ذخیره کړي په کوم کې چې ټول شیان د ګډ بدلون وخت لري. پخوا، هر نه رسیدونکي توکي په جلا فایل کې زیرمه شوي و، کوم چې د ستونزو لامل کیده کله چې د نوي لاس رسی وړ شیانو لوی شمیر شتون درلود چې لاهم د حذف کولو وړ نه و. په نوي ریلیز کې، د "کرفټ پیک" میکانیزم د نه لاسرسي وړ شیانو بسته کولو لپاره په ډیفالټ ډول کارول کیږي ، کوم چې تاسو ته اجازه درکوي ټول د لاسرسي وړ توکي په یوه پیک فایل کې زیرمه کړئ ، او د هر څیز د ترمیم وخت ډاټا په جلا جدول کې منعکس کیږي ، زیرمه شوي. په یوه فایل کې د تمدید ".mtimes" سره او د ".idx" تمدید سره د شاخص فایل په کارولو سره لینک شوی.
    د Git 2.41 سرچینې کنټرول سیسټم شتون لري
  • د پیک فایلونو لپاره په ډیسک کې د ریورس شاخص ساتل په ډیفالټ فعال شوي. کله چې په torvalds/linux repository کې ازموینه وکړئ، د ریورس شاخص کارولو دا امکان رامینځته کړی چې د سرچینې په اړه د "git push" عملیات 1.49 ځله ګړندي کړي، او ساده عملیات لکه د "git cat-" په کارولو سره د یو واحد شی اندازه محاسبه کول. فایل —batch='%(objectsize:disk)'' 77 ځله. د ریورس شاخص سره فایلونه (".rev") به د ذخیره کولو دننه په ".git/objects/pack" لارښود کې زیرمه شي.

    په یاد ولرئ چې Git ټول معلومات د شیانو په بڼه ذخیره کوي، کوم چې په جلا فایلونو کې موقعیت لري. د ذخیره کولو سره د کار کولو موثریت ډیرولو لپاره ، توکي اضافي په پیک فایلونو کې ځای په ځای شوي ، په کوم کې چې معلومات د یو بل تعقیب د شیانو د جریان په شکل کې وړاندې کیږي (دا ډول بڼه کارول کیږي کله چې د git fetch او git push سره د شیانو لیږدولو کې. حکمونه). د هر پیک فایل لپاره، د انډیکس فایل (.idx) رامینځته کیږي، کوم چې تاسو ته اجازه درکوي په چټکۍ سره د پیک فایل کې آفسیټ وټاکئ په کوم کې چې ورکړل شوی اعتراض د اعتراض پیژندونکي په کارولو سره زیرمه شوی.

    په نوي ریلیز کې شامل ریورس شاخص د پیک فایل کې د اعتراض ځای پرځای کولو په اړه معلوماتو څخه د اعتراض پیژندونکي ټاکلو پروسې اصلاح کول دي. پخوا، دا ډول تبادله په الوتنه کې ترسره کیده پداسې حال کې چې د پیک فایل پارس کول او یوازې په حافظه کې ساتل کیده، کوم چې ورته شاخصونو ته اجازه نه ورکوله چې بیا کار واخیستل شي او هر ځل د شاخص تولید ته مجبور کړي. د شاخص د جوړولو عملیات د اعتراض-پوزیشن جوړو لړۍ جوړولو او د موقعیت له مخې ترتیب کولو ته راځي، کوم چې د لوی پیک فایلونو لپاره ډیر وخت نیسي.

    د مثال په توګه، د شیانو د مینځپانګې ښودلو لپاره عملیات، کوم چې مستقیم شاخص کاروي، د شیانو د اندازې ښودلو لپاره د عملیاتو په پرتله 62 ځله ګړندی و، د کوم لپاره چې د موقعیت څخه تر څیز ډیټا شاخص نه و. د ریورس شاخص کارولو وروسته، دا عملیات نږدې ورته وخت نیسي. ریورس شاخصونه تاسو ته اجازه درکوي د شیانو لیږلو عملیات ګړندي کړئ کله چې د ډیسک څخه د چمتو شوي ډیټا په مستقیم ډول لیږدولو سره د راوړلو او فشار کمانډ اجرا کول.

    د Git 2.41 سرچینې کنټرول سیسټم شتون لري

  • د "د اعتبار وړ مرستندویه" پروتوکول، چې د محدود لاسرسي سره ذخیره کولو ته د لاسرسي په وخت کې د اعتبارونو لیږدولو لپاره کارول کیږي، د اعتبار وړ هینډلر او هغه خدمت ترمنځ چې تصدیق ترسره کیږي د WWW-Authenticate سرلیکونو تیرولو لپاره مالتړ اضافه کړی. د WWW-Authenticate سرلیک لپاره ملاتړ تاسو ته اجازه درکوي د OAuth سکایپ پیرامیټرې پاس کړئ ترڅو ذخیره کولو ته د کارونکي لاسرسي ډیر پراخه جلا کولو او د غوښتنو لپاره موجود سکوپونو محدودیت لپاره.
  • د for-each-ref کمانډ ته د فارمیټ کولو اختیار "%(ahead-behind:" اضافه شوی: )"، کوم چې تاسو ته اجازه درکوي په سمدستي توګه په یوه ځانګړې څانګه کې د موجودو یا غیر حاضرو ژمنو په اړه معلومات ترلاسه کړئ، د بلې څانګې سره تړاو لري (څومره یوه څانګه د ژمنې په کچه د بلې شاته یا مخکې ده). مخکې، د دې ډول معلوماتو ترلاسه کولو لپاره، تاسو اړتیا لرئ چې دوه جلا کمانډونه پرمخ بوځي: "git rev-list —count main..my-feature" د دې لپاره چې څانګې ته د ځانګړو ژمنو شمیر ترلاسه کړي او "git rev-list -count my-feature. ..مین" د ورک شوي ژمنې شمیرې ترلاسه کولو لپاره. اوس دا ډول محاسبې یو واحد کمانډ ته راټیټ کیدی شي، کوم چې د لاسي لیکونکو لیکل ساده کوي او د اجرا کولو وخت کموي. د مثال په توګه، د هغو څانګو ښودلو لپاره چې یوځای شوي ندي او دا ارزونه وکړي چې ایا دوی د اصلي څانګې شاته یا مخکې دي، تاسو کولی شئ یو لینر وکاروئ: $ git for-each-ref —no-merged=origin/HEAD \ — شکل ='%(refname:short) %(ahead-behind:origin/HEAD)' \refs/heads/tb/ | column -tb/cruft-extra-tips 2 96 tb/for-each-ref—د پخوانۍ کارول شوي سکریپټ پر ځای 16 96 tb/roaring-bitmaps 47 3 خارج کړئ، کوم چې 17 ځله ورو پرمخ ځي: $ git for-each-ref — بڼه='%(د نوم: لنډ)' -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" بشپړ شو | کالم -t tb/کرفټ-اضافي لارښوونې 2 96 tb/ for-each-ref- exclude 16 96 tb/roaring-bitmaps 47 3
  • د "-porcelain" اختیار د "git fetch" کمانډ کې اضافه شوی، کله چې مشخص شي، محصول په بڼه کې تولید کیږي. "، لږ د لوستلو وړ، مګر په سکریپټونو کې د پارس کولو لپاره خورا اسانه دی.
  • د "fetch.hideRefs" ترتیب اضافه شوی، کوم چې تاسو ته اجازه درکوي د ځایی ذخیره کې ځینې حوالې پټولو سره د "git fetch" عملیات ګړندي کړئ د چک کولو په مرحله کې چې سرور د شیانو بشپړ سیټ لیږلی دی، کوم چې وخت خوندي کوي. د چیک محدودول یوازې سرورونو ته چې له هغې څخه ډاټا په مستقیم ډول ترلاسه کیږي. د مثال په توګه ، کله چې په سیسټم کې د ازموینې چلول د ذخیره کولو سره چې لوی شمیر تعقیب شوي بهرني لینکونه لري ، د ټولو لینکونو پرته پرته د هدف سرور $ ریموټ ته په ګوته شوي د git ترلاسه کولو عملیات له 20 دقیقو څخه 30 ثانیو ته کم کړي. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \ راوړو $remote
  • د "git fsck" کمانډ د لاسرسي بټ میپونو او ریورس شاخصونو کې د فساد ، چیکسم موافقت ، او د ارزښتونو سموالي چیک کولو وړتیا چمتو کوي.
  • د "git clone --local" کمانډ اوس یوه تېروتنه ښیې کله چې د یوه ذخیره څخه د کاپي کولو هڅه کوي چې د $GIT_DIR دننه سم لینکونه لري.

سرچینه: opennet.ru

Add a comment