Git 2.37 အရင်သအမဌစ်ထိန်သချုပ်မဟုထုတ်ဝေမဟု

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

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

  • တစ်စိတ်တစ်ပိုင်သ အညလဟန်သကိန်သမျာသ (sparse index) ၏ ယန္တရာသသည် သိုလဟောင်မဟု၏ တစ်စိတ်တစ်ပိုင်သကိုသာ လလဟမ်သခဌုံထာသပဌီသ ကျယ်ကျယ်ပဌန့်ပဌန့် အသုံသပဌုရန်အတလက် အသင့်ဖဌစ်နေပါပဌီ။ တစ်စိတ်တစ်ပိုင်သ အညလဟန်သမျာသသည် စလမ်သဆောင်ရည်ကို မဌဟင့်တင်နိုင်ပဌီသ တစ်စိတ်တစ်ပိုင်သပုံတူပလာသခဌင်သ (ကျဲ-ငလေရဟင်သခဌင်သ) လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်သည့် သို့မဟုတ် သိုလဟောင်မဟု၏ မပဌည့်စုံသောမိတ္တူဖဌင့် လုပ်ဆောင်သည့် သိုလဟောင်ရုံမျာသတလင် နေရာလလတ်မျာသကို သက်သာစေနိုင်သည်။ အသစ်ထလက်ရဟိမဟုသည် git show၊ git sparse-checkout နဟင့် git stash အမိန့်မျာသထဲသို့ တစ်စိတ်တစ်ပိုင်သအညလဟန်သမျာသ ပေါင်သစပ်မဟုကို အပဌီသသတ်သည်။ တစ်စိတ်တစ်ပိုင်သ အညလဟန်သမျာသကို အသုံသပဌုခဌင်သမဟ သိသာထင်ရဟာသသော စလမ်သဆောင်ရည်ကို git stash command ဖဌင့် တလေ့မဌင်ရပဌီသ အချို့အခဌေအနေမျာသတလင် execution speed 80% တိုသလာပါသည်။
  • သိုလဟောင်မဟုတလင် ရည်ညလဟန်သခဌင်သမရဟိသော (အကိုင်သအခက်မျာသ သို့မဟုတ် တဂ်မျာသကို ရည်ညလဟန်သခဌင်သမပဌုပါ) အသစ်သော “cruft packs” ယန္တရာသအသစ်ကို လက်လဟမ်သမမီနိုင်သော အရာဝတ္ထုမျာသကို ထုပ်ပိုသရန်အတလက် အကောင်အထည်ဖော်ခဲ့သည်။ လက်လဟမ်သမမီနိုင်သော အရာမျာသကို အမဟိုက်စုဆောင်သသူမဟ ဖျက်လိုက်သော်လည်သ ပဌိုင်ပလဲအခဌေအနေမျာသကို ရဟောင်ရဟာသရန် ၎င်သတို့ကို ဖျက်မပစ်မီ အချိန်အတိုင်သအတာတစ်ခုအထိ သိုလဟောင်ရုံတလင် ရဟိနေပါသည်။ လက်လဟမ်သမမီနိုင်သော အရာဝတ္ထုမျာသ ပေါ်ပေါက်သည့်အချိန်ကို ခဌေရာခံရန်၊ အရာဝတ္ထုအာသလုံသသည် ဘုံပဌောင်သလဲမဟုအချိန်ရဟိသည့် ဖိုင်တစ်ခုတလင် ၎င်သတို့ကို သိမ်သဆည်သခဌင်သမပဌုသည့် အလာသတူအရာမျာသ၏ ပဌောင်သလဲချိန်နဟင့်အတူ ၎င်သတို့ထံ တဂ်မျာသကို ပူသတလဲထာသရန် လိုအပ်ပါသည်။ ယခင်က၊ သီသခဌာသဖိုင်တစ်ခုတလင် အရာဝတ္ထုတစ်ခုစီကို သိမ်သဆည်သခဌင်သသည် ဖျက်ခဌင်သအတလက် အရည်အချင်သမပဌည့်မီသေသသော လတ်ဆတ်ပဌီသ လက်လဟမ်သမမီနိုင်သော အရာမျာသစလာရဟိသောအခါတလင် ပဌဿနာမျာသဖဌစ်လာသည်။ အဆိုပဌုထာသသည့် “cruft packs” ယန္တရာသသည် သင့်အာသ ထုပ်ပိုသဖိုင်တစ်ခုတလင် လက်လဟမ်သမမီနိုင်သော အရာအာသလုံသကို သိမ်သဆည်သနိုင်ပဌီသ “.mtimes” တိုသချဲ့မဟုရဟိသော ဖိုင်တစ်ခုအတလင်သရဟိ သီသခဌာသဇယာသတစ်ခုရဟိ အရာဝတ္ထုတစ်ခုစီ၏ ပဌုပဌင်မလမ်သမံချိန်ဆိုင်ရာ အချက်အလက်မျာသကို ထင်ဟပ်စေသည်။
  • Windows နဟင့် macOS အတလက်၊ "git status" ကဲ့သို့သော လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်သောအခါတလင် အလုပ်လမ်သညလဟန်တစ်ခုလုံသကို ထပ်တလဲလဲ ရဟောင်ရဟာသနိုင်စေမည့် ဖိုင်စနစ်သို့ ပဌောင်သလဲမဟုမျာသကို ခဌေရာခံရန် built-in ယန္တရာသတစ်ခု ရဟိပါသည်။ ယခင်က အပဌောင်သအလဲမျာသကို ခဌေရာခံရန် Watchman ကဲ့သို့သော FS တလင် အပဌောင်သအလဲမျာသကို ခဌေရာခံရန်အတလက် ပဌင်ပအသုံသအဆောင်မျာသကို ချိတ်မျာသမဟတစ်ဆင့် ချိတ်ဆက်ထာသနိုင်သော်လည်သ ၎င်သသည် အပိုပရိုဂရမ်မျာသနဟင့် ဖလဲ့စည်သမဟုပုံစံမျာသကို တပ်ဆင်ရန် လိုအပ်ပါသည်။ ယခု သတ်မဟတ်ထာသသော လုပ်ဆောင်နိုင်စလမ်သကို တပ်ဆင်ထာသပဌီသ “git config core.fsmonitor true” ဟူသော အမိန့်ဖဌင့် ဖလင့်နိုင်သည်။
  • "git sparse-checkout" ညလဟန်ကဌာသချက်တလင်၊ "—cone" မုဒ်တလင် အခဌာသရလေသချယ်စရာတစ်ခုအတလက် ပံ့ပိုသမဟု၊ တစ်စိတ်တစ်ပိုင်သပုံတူပလာသခဌင်သအတလက် နမူနာပုံစံမျာသကို သတ်မဟတ်ခဌင်သနည်သလမ်သသည် အသုံသမပဌုတော့ကဌောင်သ ကဌေညာထာသပဌီသ၊ ၎င်သနဟင့် သက်ဆိုင်သော သိုလဟောင်မဟု၏အစိတ်အပိုင်သကို ဆုံသဖဌတ်သည့်အခါ ခလင့်ပဌုသည်။ တစ်စိတ်တစ်ပိုင်သအညလဟန်သမျာသကို ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ရန် အသုံသပဌုခဌင်သကို ခလင့်မပဌုသော “.gitignore” syntax ကို အသုံသပဌု၍ တစ်ညသချင်သဖိုင်မျာသကို စာရင်သပဌုစုရန်၊
  • disk သို့ ပဌောင်သလဲမဟုမျာသကို flush လုပ်ရန် fsync() call ကို configure လုပ်ရာတလင် ပဌောင်သလလယ်ပဌင်လလယ် တိုသလာပါသည်။ fsync() တစ်ခုတည်သဖဌင့် ပဌန်လည်သတ်မဟတ်ထာသသည့် writeback cache တလင် အပဌောင်သအလဲမျာသကို စုဆောင်သခဌင်သဖဌင့် တစ်ညသချင်သစီ ဖိုင်အမျာသအပဌာသကို ရေသသာသသည့်အခါ “အသုတ်” ထပ်တူပဌုခဌင်သဗျူဟာအတလက် ပံ့ပိုသမဟုအာသ "core.fsyncMethod" ကန့်သတ်ဘောင်သို့ ပေါင်သထည့်ထာသသည်။ ခေါ်ဆိုပါ။ “git add” အမိန့်ကို အသုံသပဌု၍ ဖိုင်ပေါင်သ 500 ကို ထည့်သလင်သခဲ့သည့် စမ်သသပ်မဟုသည် မုဒ်အသစ်ကို ဖလင့်ထာသချိန်တလင် 0.15 စက္ကန့်အတလင်သ ပဌီသဆုံသခဲ့ပဌီသ fsync() ကိုခေါ်ဆိုရာတလင် ဖိုင်တစ်ခုစီအတလက် 1.88 စက္ကန့်ကဌာကာ fsync - 0.06 စက္ကန့်ကို အသုံသမပဌုဘဲ ပဌီသဆုံသခဲ့သည်။
  • “git log” နဟင့် “git rev-list” ကဲ့သို့သော ဘဏ်ခလဲဖဌတ်ကျော်သည့် အမိန့်မျာသသည် ယခုတလင် “X” ထက် ပိုကဌီသသော ကတိပဌုမဟုမျာသဆိုင်ရာ အချက်အလက်မျာသကို စစ်ထုတ်ရန် ခလင့်ပဌုသည့် “-since-as-filter=X” ရလေသချယ်ခလင့်တစ်ခု ရဟိသည်။ “—စကတည်သက” ရလေသစရာနဟင့်မတူဘဲ၊ သတ်မဟတ်ထာသသည့်အချိန်ထက် ဟောင်သပဌီသနောက် ရဟာဖလေမဟုကို မရပ်တန့်စေသည့် အမိန့်အသစ်ကို စစ်ထုတ်မဟုအဖဌစ် လုပ်ဆောင်သည်။
  • "git remote" command တလင်၊ "-v" အလံကိုသတ်မဟတ်သောအခါ၊ သိုလဟောင်ရာ၏တစ်စိတ်တစ်ပိုင်သကိုယ်တူကဌောင်သအချက်အလက်မျာသကိုပဌသသည်။
  • "transfer.credentialsInUrl" ဆက်တင်တလင် ထည့်သလင်သထာသသည့် တန်ဖိုသမျာသကို "warn", "die" နဟင့် "allow" တို့ကို ယူနိုင်သည်။ ကန့်သတ်ဘောင်တလင် သတ်မဟတ်ထာသပါက “အဝေသထိန်သ။ "transfer.credentialsInUrl" ဆက်တင်ကို "die" ဟုသတ်မဟတ်ထာသလျဟင် "fetch" သို့မဟုတ် "push" လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ရန် ကဌိုသပမ်သရာတလင် .url" စာသာသအထောက်အထာသမျာသ သို့မဟုတ် "warn" ဟုသတ်မဟတ်ထာသပါက အမဟာသအယလင်သမရဟိဖဌစ်သလာသပါမည်။
  • ပုံသေအာသဖဌင့်၊ Perl မဟ C သို့ ပဌန်လည်ရေသသာသထာသသော “git add -i” အမိန့်၏ အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုမုဒ်၏ အကောင်အထည်ဖော်မဟုအသစ်ကို ဖလင့်ထာသသည်။

source: opennet.ru

မဟတ်ချက် Add