Git 2.41 အရင်သအမဌစ်ထိန်သချုပ်မဟုစနစ်ရရဟိနိုင်သည်။

ဖလံ့ဖဌိုသတိုသတက်မဟုသုံသလအကဌာတလင်ဖဌန့်ဝေထာသသောအရင်သအမဌစ်ထိန်သချုပ်မဟုစနစ် Git 2.41 ကိုထုတ်ဝေခဲ့သည်။ Git သည် အကိုင်သအခက်ခလဲခဌင်သနဟင့် ပေါင်သစည်သခဌင်သတို့ကို အခဌေခံ၍ ပဌောင်သလလယ်ပဌင်လလယ်မဟုတ်သော လိုင်သမဟုတ်သော ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသကို ပံ့ပိုသပေသသည့် လူကဌိုက်အမျာသဆုံသ၊ ယုံကဌည်စိတ်ချရပဌီသ စလမ်သဆောင်ရည်မဌင့် ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်မျာသထဲမဟတစ်ခုဖဌစ်သည်။ သမိုင်သ၏ခိုင်မာမဟုနဟင့် "backdating" အပဌောင်သအလဲမျာသကို ခံနိုင်ရည်ရဟိစေရန်၊ commit တစ်ခုစီရဟိ ယခင်သမိုင်သတစ်ခုလုံသကို သလယ်ဝိုက်သောနည်သဖဌင့် ခလဲထုတ်ခဌင်သကို အသုံသပဌုထာသပဌီသ၊ တဂ်တစ်ခုချင်သစီကို အတည်ပဌုနိုင်ပဌီသ developer မျာသ၏ ဒစ်ဂျစ်တယ်လက်မဟတ်မျာသဖဌင့် ကတိပဌုနိုင်သည်။

ယခင်ထလက်ရဟိထာသသည့် ဗာသရဟင်သနဟင့် နဟိုင်သယဟဉ်ပါက ဗာသရဟင်သအသစ်တလင် အပဌောင်သအလဲ ၄၇၂ ခုကို လက်ခံခဲ့ပဌီသ developer 542 ဩှ၏ ပါဝင်မဟုဖဌင့် ပဌင်ဆင်ထာသပဌီသ 95 သည် ပထမအကဌိမ် ဖလံ့ဖဌိုသတိုသတက်မဟုတလင် ပါဝင်ခဲ့သည်။ အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ-

  • သိုလဟောင်မဟုတလင် ရည်ညလဟန်သခဌင်သမရဟိသော လက်လဟမ်သမမီသော အရာမျာသကို ပိုမိုကောင်သမလန်အောင် ကိုင်တလယ်ခဌင်သ (အကိုင်သအခက်မျာသ သို့မဟုတ် တဂ်မျာသကို ရည်ညလဟန်သခဌင်သမရဟိပါ)။ လက်လဟမ်သမမီနိုင်သော အရာမျာသကို အမဟိုက်စုဆောင်သသူမဟ ဖယ်ရဟာသလိုက်သော်လည်သ ပဌိုင်ပလဲအခဌေအနေမျာသကို ရဟောင်ရဟာသရန် ဖယ်ရဟာသခဌင်သမပဌုမီ အချိန်အတိုင်သအတာတစ်ခုအထိ သိုလဟောင်ရုံတလင် ရဟိနေပါသည်။ လက်လဟမ်သမမီနိုင်သော အရာဝတ္ထုမျာသ၏ ကာလကို ခဌေရာခံနိုင်ရန်၊ အရာဝတ္ထုအာသလုံသသည် ဘုံပဌောင်သလဲမဟုအချိန်ရဟိသည့် pack-file တစ်ခုတလင် ၎င်သတို့အာသ သိမ်သဆည်သခလင့်မပဌုသည့် အလာသတူအရာမျာသ၏ ပဌောင်သလဲချိန်ဖဌင့် ၎င်သတို့နဟင့် အညလဟန်သမျာသကို ချိတ်ထာသရန် လိုအပ်ပါသည်။ ယခင်က၊ လက်လဟမ်သမမီနိုင်သော အရာတစ်ခုစီကို သီသခဌာသဖိုင်တစ်ခုတလင် သိမ်သဆည်သထာသခဲ့ပဌီသ ယင်သသည် ဖျက်လို့မရသေသသည့် လတ်ဆတ်သော အရာဝတ္တုမျာသစလာရဟိလျဟင် ပဌဿနာမျာသဖဌစ်စေသည်။ ထုတ်ဝေမဟုအသစ်တလင် ပုံမဟန်အာသဖဌင့်၊ လက်လဟမ်သမမီနိုင်သော အရာဝတ္ထုမျာသကို ထုပ်ပိုသရန်အတလက် "cruft packs" ယန္တရာသအာသ အသုံသပဌုထာသပဌီသ၊ ထုပ်ပိုသဖိုင်တစ်ခုတလင် ချိတ်ဆက်၍မရသော အရာအာသလုံသကို သိမ်သဆည်သရန်နဟင့် သီသခဌာသဇယာသတစ်ခုအတလင်သရဟိ အရာဝတ္ထုတစ်ခုစီရဟိ အရာဝတ္ထုတစ်ခုစီ၏ ပဌုပဌင်မလမ်သမံချိန်အပေါ် ဒေတာကို ထင်ဟပ်စေသည်။ “.mtimes” တိုသချဲ့မဟုနဟင့်အတူ ဖိုင်ကို “.idx” တိုသချဲ့မဟုဖဌင့် အညလဟန်သဖိုင်ကို အသုံသပဌု၍ ချိတ်ဆက်ထာသသည်။
    Git 2.41 အရင်သအမဌစ်ထိန်သချုပ်မဟုစနစ်ရရဟိနိုင်သည်။
  • ပုံသေအာသဖဌင့်၊ အထုပ်ဖိုင်မျာသအတလက် ဒစ်ပေါ်တလင် ပဌောင်သပဌန်အညလဟန်သ (revindex) ကို ထိန်သသိမ်သခဌင်သကို ဖလင့်ထာသသည်။ torvalds/linux repositories တလင် စမ်သသပ်သောအခါ၊ ပဌောင်သပဌန်အညလဟန်သကိုအသုံသပဌုခဌင်သသည် အရင်သအမဌစ်-အမျာသသုံသ "git push" လုပ်ဆောင်ချက်မျာသကို 1.49 ကဌိမ် အရဟိန်မဌဟင့်နိုင်စေကာ "git cat- ကို အသုံသပဌု၍ အရာဝတ္ထုတစ်ခု၏အရလယ်အစာသကို တလက်ချက်ခဌင်သကဲ့သို့သော ရိုသရဟင်သသောလုပ်ဆောင်ချက်မျာသ၊ ဖိုင် --batch='%(objectsize:disk)' » 77 ကဌိမ်။ ပဌောင်သပဌန်အညလဟန်သတစ်ခုပါရဟိသော ဖိုင်မျာသ (.rev") ကို ".git/objects/pack" လမ်သညလဟန်တလင် သိမ်သဆည်သထာသမည်ဖဌစ်သည်။

    Git သည် သီသခဌာသဖိုင်မျာသတလင် ထည့်ထာသသည့် အရာဝတ္ထုပုံစံဖဌင့် ဒေတာအာသလုံသကို သိမ်သဆည်သထာသကဌောင်သ သတိရပါ။ repository နဟင့် အလုပ်လုပ်ခဌင်သ၏ စလမ်သဆောင်ရည်ကို တိုသမဌဟင့်ရန်အတလက် အရာဝတ္ထုမျာသကို pack files မျာသတလင် ထပ်လောင်သထည့်သလင်သထာသပါသည်၊ ယင်သတလင် အချက်အလက်မျာသကို တစ်ခုပဌီသတစ်ခု လိုက်ကဌည့်နေသည့် အရာဝတ္ထုမျာသ၏ စီသကဌောင်သပုံစံဖဌင့် တင်ပဌသည် (git fetch နဟင့် git ဖဌင့် အရာဝတ္ထုမျာသကို လလဟဲပဌောင်သသည့်အခါ အလာသတူဖော်မတ်ကို အသုံသပဌုသည်။ push commands)။ အညလဟန်သဖိုင် (.idx) ကို pack file တစ်ခုစီအတလက် ဖန်တီသထာသပဌီသ၊ ၎င်သသည် ပေသထာသသည့်အရာဝတ္ထုအာသ အရာဝတ္တုအမဟတ်အသာသဖဌင့် သိမ်သဆည်သထာသသည့် အထုပ်ဖိုင်ရဟိ အော့ဖ်ဆက်ကို အလျင်အမဌန် ဆုံသဖဌတ်နိုင်စေပါသည်။

    အသစ်ထလက်ရဟိမဟုတလင်ပါဝင်သော ပဌောင်သပဌန်အညလဟန်သသည် pack file ရဟိ အရာဝတ္ထု၏တည်နေရာအချက်အလက်မဟ အရာဝတ္တု ID ကို ဆုံသဖဌတ်သည့်လုပ်ငန်သစဉ်ကို ချောမလေ့စေရန် ရည်ရလယ်သည်။ ယခင်က၊ အထုပ်ဖိုင်ကို ခလဲခဌမ်သစိတ်ဖဌာစဉ်အတလင်သ ထိုသို့သောပဌောင်သလဲခဌင်သအာသ လျင်မဌန်စလာလုပ်ဆောင်ခဲ့ပဌီသ ယင်သအညလဟန်သမျာသကို ပဌန်လည်အသုံသပဌုခဌင်သအာသ ခလင့်မပဌုဘဲ အကဌိမ်တိုင်သ အညလဟန်သကိန်သကို ထုတ်ပေသရန် တလန်သအာသပေသခဲ့သည့် မဟတ်ဉာဏ်တလင်သာ သိမ်သဆည်သခဲ့သည်။ အညလဟန်သတစ်ခုတည်ဆောက်ခဌင်သ၏လုပ်ဆောင်ချက်ကို အရာဝတ္ထု-တည်နေရာအတလဲမျာသတည်ဆောက်ခဌင်သနဟင့် အစုအဝေသကဌီသမျာသအတလက် အချိန်ကဌာမဌင့်နိုင်သောကဌောင့် ၎င်သကို ရာထူသအလိုက်စီခဌင်သသို့ လျဟော့ချသည်။

    ဥပမာအာသဖဌင့်၊ တိုက်ရိုက်အညလဟန်သကို အသုံသပဌုသည့် အရာဝတ္ထုမျာသ၏ အကဌောင်သအရာမျာသကို ပဌသသည့် လုပ်ဆောင်ချက်သည် အရာဝတ္ထုမျာသ၏ အရလယ်အစာသကို ပဌသသည့် လုပ်ဆောင်ချက်ထက် 62 ဆ ပိုမဌန်ပဌီသ တည်နေရာမဟ အရာဝတ္ထုဆိုင်ရာ ဆက်ဆံရေသဒေတာကို အညလဟန်သမတင်နိုင်ပါ။ ပဌောင်သပဌန်အညလဟန်သကို အသုံသပဌုပဌီသနောက်၊ ကလုပ်ဆောင်မဟုမျာသသည် ခန့်မဟန်သခဌေအာသဖဌင့် တူညီသောအချိန်ကို စတင်ခဲ့သည်။ အဆင်သင့်လုပ်ထာသသောဒေတာကို disk မဟတိုက်ရိုက်လလဟဲပဌောင်သခဌင်သဖဌင့် fetch နဟင့် push commands မျာသကိုလုပ်ဆောင်သောအခါတလင် Reverse indexes မျာသသည် အရာဝတ္ထုမျာသပေသပို့ခဌင်သလုပ်ငန်သကို အရဟိန်မဌဟင့်နိုင်စေပါသည်။

    Git 2.41 အရင်သအမဌစ်ထိန်သချုပ်မဟုစနစ်ရရဟိနိုင်သည်။

  • ကန့်သတ်သိမ်သဆည်သထာသရာမျာသကိုဝင်ရောက်ကဌည့်ရဟုသည့်အခါ အထောက်အထာသမျာသဖဌတ်သန်သရန်အသုံသပဌုသည့် "အထောက်အထာသမျာသအကူအညီပေသသူ" ပရိုတိုကောသို့ အထောက်အထာသကိုင်တလယ်သူနဟင့် အထောက်အထာသစိစစ်ခဌင်သဝန်ဆောင်မဟုကဌာသရဟိ WWW-Authenticate ခေါင်သစီသမျာသကို ဖဌတ်သလာသခဌင်သအတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်သလင်သထာသပါသည်။ WWW-Authenticate ခေါင်သစီသအတလက် ပံ့ပိုသမဟုမဟ သင့်အာသ သိုလဟောင်ရုံမျာသသို့ အသုံသပဌုသူဝင်ရောက်ခလင့်ကို ပိုမိုအသေသစိတ်ခလဲခဌာသကာ OAuth နယ်ပယ်ဘောင်ကန့်သတ်ချက်မျာသကို ကျော်ဖဌတ်နိုင်စေပါသည်။
  • ဖော်မတ်ရလေသချယ်စရာ "%(ရဟေ့-နောက်- )" ၊ အချို့သောဌာနခလဲတစ်ခုရဟိ ကတိကဝတ်မျာသ သို့မဟုတ် ပျက်ကလက်မဟု အရေအတလက်နဟင့်ပတ်သက်ပဌီသ အခဌာသဌာနခလဲတစ်ခုနဟင့် သက်ဆိုင်သည် (ဌာနခလဲတစ်ခုသည် ကတိပဌုမဟုအဆင့်တလင် မည်မျဟနောက်ကျနေသည် သို့မဟုတ် အခဌာသဌာနခလဲတစ်ခု၏ရဟေ့တလင် ရဟိနေသည်) နဟင့်ပတ်သက်သည့် အချက်အလက်မျာသကို ချက်ချင်သရနိုင်စေပါသည်။ ယခင်က ကအချက်အလက်မျာသကိုရယူရန် သီသခဌာသ command နဟစ်ခု လိုအပ်သည်- "git rev-list --count main..my-feature" နဟင့် "git rev-list --count my-feature.. main" ပျောက်နေသော commits အရေအတလက်ကို ရယူရန်။ ယခုတလင် ထိုကဲ့သို့သော တလက်ချက်မဟုမျာသကို စာရေသကိရိယာမျာသကို ရိုသရဟင်သစေပဌီသ လုပ်ဆောင်ချိန်ကို လျဟော့ချပေသသည့် ညလဟန်ကဌာသချက်တစ်ခုတည်သသို့ လျဟော့ချနိုင်သည်။ ဥပမာအာသဖဌင့်၊ ပေါင်သစည်သမထာသသောအကိုင်သအခက်မျာသကိုပဌသပဌီသ ၎င်သတို့သည် ပင်မအကိုင်သအခက်၏နောက်တလင်ရဟိမရဟိကို အကဲဖဌတ်ရန်၊ သင်သည် one-liner ကိုသုံသနိုင်သည်- $git for-each-ref --no-merged=origin/HEAD \ --format=' %(refname:short) %(ahead-behind :origin/HEAD)' \ refs/heads/tb/ | ကော်လံ -t tb/cruft-extra-tips 2 96 tb/for-each-ref—16 96 tb/roaring-bitmaps 47 3 tb/roaring-bitmaps ကိုဖယ်ထုတ်ပါ 17 2 ယခင်ကအသုံသပဌုခဲ့သည့် script အစာသ 96 ဆပိုနဟေသသည်- $ git for-each-ref — format='%(refname:short)' --no-merged=origin/HEAD \refs/heads/tb | ဖတ်နေစဉ် ref do ahead="$(git rev-list --count origin/HEAD..$ref)" behind="$(git rev-list --count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ahead" "$behind" ပဌီသပဌီ | ကော်လံ -t tb/cruft-extra-tips 16 96 tb/for-each-ref—47 3 tb/roaring-bitmap XNUMX XNUMX ကိုဖယ်ထုတ်ပါ
  • "--porcelain" option ကို "git fetch" command တလင် ထည့်သလင်သထာသပဌီသ၊ ဖော်မက်တလင် output ကို "ထုတ်ပေသသည်" ”၊ ဖတ်ရဟုနိုင်မဟုနည်သသော်လည်သ ဇာတ်ညလဟန်သမျာသတလင် ခလဲခဌမ်သစိတ်ဖဌာရန် ပို၍အဆင်ပဌေသည်။
  • ဆာဗာမဟ အရာဝတ္ထုအစုံအလင်ကို ဆာဗာမျာသကိုသာ စစ်ဆေသကန့်သတ်ခဌင်သဖဌင့် အချိန်ကုန်သက်သာစေသည့် အရာဝတ္ထုအစုံအလင်ကို ဆာဗာမဟ ပေသပို့ထာသကဌောင်သ အတည်ပဌုသည့်အဆင့်တလင် ဒေသတလင်သသိုလဟောင်မဟုတလင် လင့်ခ်မျာသဝဟက်ထာသခဌင်သဖဌင့် "fetch.hideRefs" လုပ်ဆောင်ချက်မျာသကို အရဟိန်မဌဟင့်ရန် "fetch.hideRefs" ဆက်တင်ကို ထည့်သလင်သခဲ့သည်။ မည်သည့်ဒေတာမဟ တိုက်ရိုက်ရယူသည်။ ဥပမာအာသဖဌင့်၊ ခဌေရာခံထာသသော ပဌင်ပလင့်ခ်မျာသစလာပါရဟိသော သိုလဟောင်ရုံမျာသရဟိသော စနစ်တလင် စမ်သသပ်သည့်အခါ $remote ပစ်မဟတ်ဆာဗာထံ ပေသပို့ထာသသော လင့်ခ်မျာသအာသလုံသမဟလလဲ၍ ကျန်လင့်မျာသအာသလုံသမဟလလဲ၍ "git fetch" လုပ်ဆောင်ချက်ကို မိနစ် 20 မဟ 30 စက္ကန့်အထိ လျဟော့ချပေသပါသည်။ $git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remote/$remote \ fetch $remote
  • "git fsck" အမိန့်သည် အကျင့်ပျက်ခဌစာသမဟု၊ checksum ကိုက်ညီမဟုနဟင့် ဝင်ရောက်နိုင်မဟု ဘစ်မဌေပုံမျာသနဟင့် ပဌောင်သပဌန်အညလဟန်သမျာသတလင် တန်ဖိုသမျာသ၏ မဟန်ကန်မဟုကို စစ်ဆေသနိုင်စလမ်သကို ဖော်ဆောင်ပေသသည်။
  • "git clone --local" ကလန်မန်သသည် ယခု $GIT_DIR အတလင်သရဟိ သင်္ကေတလင့်ခ်မျာသပါရဟိသော သိုလဟောင်ရုံမဟ ကူသယူရန် ကဌိုသပမ်သသောအခါတလင် အမဟာသအယလင်သတစ်ခု ပဌသသည်။

source: opennet.ru

မဟတ်ချက် Add