Git ၏ Hash အသစ် မူရင်း - ၎င်း၏ အဓိပ္ပါယ်
Git ၏ အဆိုပြုထားသော SHA-256 မူရင်းသည် repository အသစ်များအတွက် လိုက်ဖက်မှု နယ်နိမိတ်ကို ဖန်တီးပေးသည်။
Git ၏ အဆိုပြုထားသော SHA-256 မူရင်းသည် repository အသစ်များအတွက် လိုက်ဖက်မှု နယ်နိမိတ်ကို ဖန်တီးပေးသည်။ ကျွန်ုပ်တို့သည် တရားဝင် အစီအစဉ်၊ Scott Chacon ၏ ကန့်ကွက်ချက်နှင့် အလုပ်လုပ်နေသော GitHub ကြိုတင်ကြည့်ရှုမှု ခြွင်းချက်ကို စစ်ဆေးပြီးနောက် Pi 1.0 နှင့် SvelteKit 3 တို့ကို ဖော်ပြထားသည်။ စီရင်ချက်: NEEDS REVIEW။
ရေးသားထားသော ထုတ်ဝေမှု (အင်္ဂလိပ်) ကို ဖတ်ရန် ↗
ဤဗီဒီယိုတွင် ဖော်ပြထားသောအရာများ
- Git repository နှစ်ခု ဘာကြောင့် စကားမပြောနိုင်တာလဲ။
- Git 3 က တကယ်ဘာတွေပြောင်းလဲသွားတာလဲ။
- Git က collisions တွေကို တွေ့ရှိရင် SHA-1 ကို ဘာကြောင့်အစားထိုးရတာလဲ။
- ကျွန်ုပ်တို့ရဲ့ local လိုက်ဖက်မှု စစ်ဆေးမှုက ဘာကိုပြသခဲ့တာလဲ။
- Pi Durable မှာ ပျက်ကျရင် ဘာတွေဆက်ရှိနေမလဲ။
ဘာသာပြန်ထားသော စာသားမှတ်တမ်း
မူရင်း အင်္ဂလိပ်စကားပြောမှ ဘာသာပြန်ထားသည်။ ရရှိနိုင်သော အသံနှင့် စာတန်းထိုးများကို YouTube မှ ထိန်းချုပ်ထားသည်။
Git repository နှစ်ခု ဘာကြောင့် စကားမပြောနိုင်တာလဲ။
0:00 Git ကို အဆင့်မြှင့်တင်တာက သင့် tool တွေ ဆက်သွယ်မှုရှိနေစေမယ်လို့ ထင်လိမ့်မယ်။ Git ရဲ့ စီစဉ်ထားတဲ့ hash အသစ် မူရင်းက ဒီနေ့ခေတ် format အဟောင်းတွေကို စကားပြောလို့မရတဲ့ repository တွေ ဖန်တီးပေးတယ်။ ဒီ video မှာ ဘာကြောင့်ပြောင်းလဲတာလဲ။ ဘာတွေပျက်စီးမလဲ။ ဘယ်သူတွေအဆင်သင့်ဖြစ်ပြီလဲ။ GitHub မှာ အလုပ်လုပ်နေတဲ့ ခြွင်းချက်တစ်ခု ရှိနှင့်ပြီးသားပါ။ အဲဒါဘာကိုသက်သေပြလဲဆိုတာ အဆုံးမှာ ပြပေးမယ်။ ဒီနေ့ သောကြာနေ့၊ အောက်တိုဘာ ၂ ရက်ဖြစ်ပြီး ဒါက The Daily Diff ဖြစ်ပါတယ်။
0:18 ကြာသပတေးနေ့မှာ GitHub ပူးတွဲတည်ထောင်သူက Git ရဲ့ စီစဉ်ထားတဲ့ ပြောင်းလဲမှုကို ကုန်ကျစရိတ်ကြီးတဲ့ အမှားတစ်ခုလို့ ခေါ်ဆိုခဲ့တယ်။ Pi က agent harness အသစ်ကို ထုတ်ပြန်ခဲ့ပြီး SvelteKit က နောက်ထပ် migration တစ်ခုကို ထုတ်ပြန်ခဲ့ပါတယ်။ Scott Chacon က GitHub ကို တည်ဆောက်ရာမှာ ကူညီခဲ့ပြီး Pro Git ကို ရေးသားခဲ့တာကြောင့် ဒီတိုင်ကြားချက်က အတွင်းလူတစ်ယောက်ဆီက လာတာပါ။ ဒီအိမ်က Git tools တွေလည်း ရောင်းပါတယ်။ ပထမဆုံးအနေနဲ့ တကယ့်အစီအစဉ်ပါ။
Git 3 က တကယ်ဘာတွေပြောင်းလဲသွားတာလဲ။
0:35 Git 3 က repository အသစ်တွေကို SHA-256 ကို မူရင်းထားမှာဖြစ်ပြီး library တွေနဲ့ hosting service တွေ အထောက်အပံ့ပေးဖို့ အဆင်သင့်ဖြစ်တာနဲ့အမျှပေါ့။ တရားဝင်စာရွက်စာတမ်းက ထုတ်ပြန်မယ့်ရက် မပေးထားဘဲ SHA-1 ကို ဆက်လက်ထောက်ခံထားပါတယ်။ executable ကို အဆင့်မြှင့်တင်တဲ့အခါ သင့်လက်ရှိ repository က ရုတ်တရက် format ပြောင်းသွားမှာ မဟုတ်ပါဘူး။ သင့် group chat က အရေးပေါ် migration ကို မစီစဉ်ခင် ဒါကို မှတ်ထားဖို့လိုပါတယ်။ အငြင်းပွားစရာက အဆိုပြုထားတဲ့ default ပါ။ အရေးပေါ် migration ကို မစီစဉ်ခင် ဒါကို မှတ်ထားဖို့လိုပါတယ်။ အငြင်းပွားစရာက အဆိုပြုထားတဲ့ default ပါ။ နောက်ဆုံးနေ့ရက်ကတော့ လက်ရှိမှာ လွတ်နေတဲ့ ပြက္ခဒိန်တစ်ခုပါ။
Git က collisions တွေကို တွေ့ရှိရင် SHA-1 ကို ဘာကြောင့်အစားထိုးရတာလဲ။
0:58 ဘာလို့လုံးဝပြောင်းလဲတာလဲ။ Git က object တွေကို ၎င်းတို့ရဲ့ contents တွေကို hash လုပ်ခြင်းဖြင့် နာမည်ပေးပါတယ်။ ဖိုင်တွေက tree တွေထဲကို ဝင်ရောက်ပြီး commit တွေက tree တွေနဲ့ အရင် commit တွေကို ရည်ညွှန်းပါတယ်။ အဲဒါက သမိုင်းတစ်လျှောက်လုံးမှာ တည်တံ့ခိုင်မြဲမှုကို ပေးပါတယ်။ hashing scheme ကို ပြောင်းလိုက်ရင် object နာမည်တွေလည်း ပြောင်းလဲသွားပါလိမ့်မယ်။ အခြား object တွေထဲမှာ သိမ်းဆည်းထားတဲ့ reference တွေအပါအဝင်ပေါ့။ Chacon က Git ကို ဖန်တီးသူ Linus Torvalds ကို ရည်ညွှန်းပြီး ယုံကြည်စိတ်ချရတဲ့
1:17 ဖြန့်ဝေမှုက အရေးကြီးတယ်လို့ ငြင်းခုံပါတယ်။ အဲဒါက သမိုင်းကြောင်းဆိုင်ရာ အနေအထားတစ်ခုဖြစ်ပြီး Linus က ၂၀၀၅ ခုနှစ်တုန်းက SHA-1 ကို ရွေးချယ်ခဲ့တာပါ။ ၂၀၀၅ ခုနှစ်တုန်းက SHA-1 ကို ရွေးချယ်ခဲ့တာပါ။ အဲဒီနောက်ပိုင်းမှာ လုံခြုံရေးဆိုင်ရာ အခြေအနေတွေ ပြောင်းလဲသွားပါပြီ။ သုတေသီတွေက ၂၀၁၇ ခုနှစ်မှာ SHA-1 collision တွေကို သရုပ်ပြခဲ့ပြီး နောက်ပိုင်းမှာ PGP identity certificate တွေကို ဆန့်ကျင်တဲ့ chosen prefix attack ကို သရုပ်ပြခဲ့ပါတယ်။ ခေတ်သစ် Git က hardened SHA-1 နဲ့ သိထားတဲ့ collision attack တွေကို တွေ့ရှိပါတယ်။ ၎င်းရဲ့ maintainer တွေက အနာဂတ် attack တွေကနေ ကာကွယ်မှုကိုလည်း လိုချင်ကြပါတယ်။ အဲဒါက လက်မှတ်တွေကနေ လိုချင်ဖို့ သဘာဝကျတဲ့အရာပါ။
1:41 Chacon က ecosystem bill က လုံခြုံရေးနည်းနည်းပဲ ပေးတယ်လို့ ထင်ပါတယ်။ သူက tree contents တွေရဲ့ သီးခြား ခိုင်မာတဲ့ checksum ကို လက်မှတ်ထိုးဖို့ အဆိုပြုထားပြီး လက်ရှိ object addressing ကို အောက်မှာ ထားရှိဖို့ပေါ့။ ဘာတွေပျက်စီးသွားလဲ။ ကျွန်တော် format နှစ်မျိုးလုံးကို locally ဖန်တီးပြီး ဖိုင်လေးတစ်ခုတည်းကို hash လုပ်ကြည့်ခဲ့တယ်။
ကျွန်ုပ်တို့ရဲ့ local လိုက်ဖက်မှု စစ်ဆေးမှုက ဘာကိုပြသခဲ့တာလဲ။
1:54 object နာမည်တစ်ခုမှာ hex character လေးဆယ်ရှိပြီး ကျန်တစ်ခုမှာ ခြောက်ဆယ်လေးခု ရှိတယ်။ ပြီးတော့ သူတို့ကြားထဲမှာ fetch လုပ်ကြည့်ခဲ့တယ်။ ကျွန်တော် install လုပ်ထားတဲ့ Git က မကိုက်ညီတဲ့ algorithm တွေနဲ့ ပယ်ချခဲ့တယ်။ လက်ရှိ တရားဝင် manual မှာ ဖော်ပြထားတဲ့ လိုက်ဖက်မှု ကွာဟချက်အတိုင်းပါပဲ။ ဒါက ကျွန်တော့်ရဲ့ အဟောင်း install လုပ်ထားတဲ့ Git ကို အသုံးပြုထားတာမို့ ဒီနေ့ခေတ် နယ်နိမိတ်အကြောင်း ပြောပြပါတယ်။ ထုတ်ပြန်ခြင်းမရှိသေးတဲ့ Git 3 ကို စမ်းသပ်တယ်လို့ ပြောရင်တော့ ဖန်တီးမှုရှိတဲ့ စာရင်းကိုင်ခြင်း ဖြစ်ပါလိမ့်မယ်။ migration လုပ်ငန်းက hash ရဲ့ အရှည်ကို ယူဆတဲ့ script တွေထဲကို ရောက်ရှိနေပြီး object name တွေကို ချိတ်ဆက်ထားတဲ့ system တွေထဲကို ရောက်ရှိနေပါတယ်။
2:19 သမိုင်းကြောင်းတစ်ခုကို Rehashing လုပ်ဖို့က အဲဒီ identity တွေကြားက mapping တစ်ခု လိုအပ်ပါတယ်။ Git ရဲ့ transition design မှာ အဲဒီ mapping နဲ့ signature handling ပါဝင်ပါတယ်။ အကောင်အထည်ဖော်မှု အဆင်သင့်ဖြစ်နေခြင်းက အရေးကြီးပါတယ်၊ ဘာလို့လဲဆိုတော့ design document က သင့်စိတ်ကြိုက် developer tool ထဲမှာ ဝှက်ထားတဲ့ library ကို အဆင့်မြှင့်တင်ပေးတာ မဟုတ်ပါဘူး။ library ထဲမှာ ဝှက်ထားတဲ့ library ကို အဆင့်မြှင့်တင်ပေးတာ မဟုတ်ပါဘူး။ အဲဒါက Chacon ရဲ့ အငြင်းအခုံမှာ လူသားကုန်ကျစရိတ်ပါ။ tool maintainer တိုင်းက နောက်ထပ် လိုက်ဖက်မှု လုပ်ငန်းတစ်ခု ရရှိပြီး သုံးစွဲသူတွေက သူတို့ရဲ့ version control က အခု version control လိုအပ်နေတယ်ဆိုတာကို သိရှိလာပါတယ်။ လောလောဆယ်မှာတော့ ပရောဂျက်တစ်ခုအတွက် format အသစ်ကို မရွေးချယ်ခင် သင့် host နဲ့ tooling ကို စမ်းသပ်ကြည့်ပါ။
2:44 ရှိပြီးသား team တွေက ecosystem လိုက်လျောညီထွေဖြစ်လာတဲ့အထိ သူတို့ရဲ့ လက်ရှိ format ကို ဆက်ထားနိုင်ပါတယ်။ ဒီအတောအတွင်း Pi က 1.0 ကို ရောက်ရှိခဲ့ပါတယ်။
Pi Durable မှာ ပျက်ကျရင် ဘာတွေဆက်ရှိနေမလဲ။
2:51 ဒါက Earendil ရဲ့ coding agent harness တစ်ခုဖြစ်ပြီး Codemode မှတစ်ဆင့် native MCP ထောက်ခံမှုနဲ့ လိုအပ်တဲ့အခါ tool တွေကို load လုပ်ပါတယ်။ Codemode နဲ့ tool တွေကို လိုအပ်တဲ့အခါမှ load လုပ်ပါတယ်။ team က minimalism ကို အဓိကအချက်လို့ ခေါ်ပါတယ်။ သင့် agent setup က သေးငယ်တဲ့ အစိုးရတစ်ခုနဲ့ တူနေပြီဆိုရင် လိုအပ်မှသာ tool တွေကို prompt ကနေ ဖယ်ထားတာက အုပ်ချုပ်ရေးဆိုင်ရာ ပြုပြင်ပြောင်းလဲမှုနဲ့ တူပါတယ်။ Pi Durable ဆိုတဲ့ သီးခြား စမ်းသပ်မှု framework တစ်ခုကိုလည်း ထုတ်ပြန်ခဲ့ပါတယ်။ task တွေက checkpoint တွေကို သိမ်းဆည်းထားတာကြောင့် ပြန်လည်စတင်ထားတဲ့ process က မပြီးဆုံးသေးတဲ့ အလုပ်တွေကို persistent storage ကနေ ပြန်လည်လုပ်ဆောင်နိုင်ပါတယ်။ အဓိကအသေးစိတ်အချက်က tool replay ပါ။
3:16 ပျက်ကျမှုကြောင့် အနှောင့်အယှက်ဖြစ်ခဲ့တဲ့ tool တစ်ခုက လုံခြုံတယ်လို့ ကြေညာတဲ့အခါမှသာ ပြန်လည်လုပ်ဆောင်ပါတယ်။ မဟုတ်ရင် model ကို အနှောင့်အယှက်ဖြစ်ခဲ့တယ်လို့ ပြောပြပါတယ်။ tool တစ်ခုက ပိုက်ဆံသုံးနိုင်တဲ့အခါ ဒါက အသုံးဝင်တဲ့ နယ်နိမိတ်တစ်ခုပါ။ ကျွန်တော် လက်ထောက်ကို ကျွန်တော့်ရဲ့ ဈေးဝယ်စာရင်းကို မှတ်မိစေချင်တယ်၊ ပျက်ကျမှုကို နှစ်ခါဝယ်ပြီး မဆင်နွှဲစေချင်ဘူး။
SvelteKit 3 က သင့်အတွက် ဘာတွေပြောင်းရွှေ့ပေးတာလဲ။
3:30 SvelteKit 3 လည်း ကြာသပတေးနေ့မှာ ရောက်ရှိခဲ့ပြီး configuration ကို Vite ထဲကို ပြောင်းရွှေ့ခဲ့ပြီး standard package subpath import တွေကို အသုံးပြုပြီး dollar lib ကို hash lib နဲ့ အစားထိုးခဲ့ပါတယ်။ migration command က ပြန်လည်ရေးသားနိုင်သမျှကို ပြန်ရေးပြီး ကျန်တာတွေအတွက် to do list ချန်ထားခဲ့ပါတယ်။ သင့် robot က ကူညီနိုင်ပြီး သင့် diff ကတော့ ဖတ်ရှုသင့်နေဆဲပါ။ ကြေညာချက်က သင့် robot သူငယ်ချင်းတွေကိုတောင် ကျန်တဲ့အရာတွေအတွက် ခေါ်ယူထားပါတယ်။ framework upgrade တစ်ခုက အိမ်စာနဲ့ အစားထိုး ဆရာမကို ပို့ဆောင်ပေးတဲ့ အခြေအနေကို ရောက်ရှိနေပါပြီ။ remote function တွေက စမ်းသပ်ဆဲ Async Svelte ကို လိုအပ်နေဆဲပါ။
3:56 major version number က စိတ်ချရတယ်လို့ ခံစားရပေမယ့် တစ်ဦးချင်းစီရဲ့ feature တွေက ၎င်းတို့ရဲ့ ကိုယ်ပိုင် maturity label တွေ ပါရှိပါတယ်။ သင်တကယ်အသုံးပြုနေတဲ့ အရာတွေကို စစ်ဆေးပါ။
GitHub ရဲ့ အလုပ်လုပ်နေတဲ့ ခြွင်းချက်က ဘာကိုသက်သေပြတာလဲ။
4:03 ဒါဆို Git ရဲ့ format အသစ်အတွက် ဘယ်သူတွေ အဆင်သင့်ဖြစ်ပြီလဲ။ ဒီမှာ ခြွင်းချက်ပါ။ Brian Carlson ရဲ့ ဟောပြောချက်ပါရှိတဲ့ public GitHub repository တစ်ခုက ပြည့်စုံတဲ့ SHA-256 object နာမည်ကို ပြန်လည်ပေးနေပါပြီ။ ကျွန်တော် public remote ကို တိုက်ရိုက်စစ်ဆေးခဲ့တယ်။ ဟောပြောချက် slide တွေက support ကို private preview လို့ခေါ်ပြီး repository creation က လာနေဆဲလို့ ပြောပါတယ်။ စောင့်ဆိုင်းခန်းနောက်ကွယ်မှာ တကယ့်တိုးတက်မှုတွေ ရှိပါတယ်။ ဒါက GitHub က ဒီ preview repository ကို ဝန်ဆောင်မှုပေးနိုင်တယ်ဆိုတာ သက်သေပြပါတယ်။
4:24 ဒါက သာမန် project creation ဒါမှမဟုတ် သင့် integration အားလုံး အဆင်သင့်ဖြစ်နေပြီဆိုတာကို ကျွန်ုပ်တို့ကို အာမခံချက် လုံးဝ မပေးပါဘူး။ integration အားလုံး အဆင်သင့်ဖြစ်နေပြီဆိုတာကို ကျွန်ုပ်တို့ကို အာမခံချက် လုံးဝ မပေးပါဘူး။ ခြွင်းချက်မှာ ခွင့်ပြုချက် နယ်နိမိတ်ရှိပါတယ်။ ကျွန်တော်ပြောတာကို နားထောင်မယ့်အစား ဒါကို ဖတ်ချင်တယ်ဆိုရင် diff က သင့် inbox ထဲကို မနက်တိုင်း ရောက်ရှိပြီး thedailydiff.dev မှာ အခမဲ့ရရှိနိုင်ပါတယ်၊ link က အောက်မှာပါ။ ဒါကြောင့် ဒီနေ့ရဲ့ စီရင်ချက်က needs review ပါ။
ကျွန်ုပ်၏စီရင်ချက်သည် toolchain တစ်ခုလုံးပေါ်တွင် ဘာကြောင့်မူတည်နေရတာလဲ။
4:40 ကျွန်တော်က ပိုခိုင်မာတဲ့ hash option ကို ဆက်ထားမှာဖြစ်ပြီး default တွေ မပြောင်းခင် toolchain တစ်ခုလုံးကို စမ်းသပ်မှာပါ။ လိုက်ဖက်ညီမှုက လုံခြုံရေးတိုးတက်မှုကို ပို့ဆောင်တဲ့ အစိတ်အပိုင်းတစ်ခုပါ။ ဒါက ဒီနေ့အတွက် diff ပါ။ ကျွန်တော် Axrisi က Niko ပါ။ တာဝန်ယူမှုရှိစွာ ပေါင်းစည်းပါ။
ရင်းမြစ်များ
- Chaconblog.gitbutler.com
- Git's official plangit-scm.com
- Current interoperabilitygit-scm.com
- Transition designgit-scm.com
- Independent collision researchsha-mbles.github.io
- GitHub preview repositorygithub.com
- Pi 1.0earendil.com
- Pi Durableearendil.com
- SvelteKit 3svelte.dev
- HN discussionnews.ycombinator.com



