Standar Hash Baru Git – Apa Artinya
Standar SHA-256 yang diusulkan Git menciptakan batasan kompatibilitas untuk repositori baru.
Standar SHA-256 yang diusulkan Git menciptakan batasan kompatibilitas untuk repositori baru. Kami memeriksa rencana resmi, keberatan Scott Chacon, dan pengecualian pratinjau GitHub yang berfungsi, lalu membahas Pi 1.0 dan SvelteKit 3. Putusan: NEEDS REVIEW.
Baca edisi tertulis (Inggris) ↗
Isi video ini
- Mengapa dua repositori Git bisa menolak untuk berkomunikasi?
- Apa sebenarnya yang diubah Git 3?
- Mengapa mengganti SHA-1 jika Git mendeteksi tabrakan?
- Apa yang ditunjukkan oleh pemeriksaan kompatibilitas lokal kami?
- Apa yang bertahan dari kerusakan di Pi Durable?
Transkrip terjemahan
Diterjemahkan dari narasi asli bahasa Inggris. Audio dan teks tersedia yang dikontrol oleh YouTube.
Mengapa dua repositori Git bisa menolak untuk berkomunikasi?
0:00 Anda akan berpikir mengupgrade Git menjaga alat Anda tetap berkomunikasi. Standar hash baru yang direncanakan Git menciptakan repositori yang format lama saat ini tidak dapat berkomunikasi. Dalam video ini, mengapa berubah? Apa yang rusak? Siapa yang siap? Sudah ada pengecualian yang berfungsi di GitHub. Saya akan menunjukkan apa yang dibuktikannya di akhir. Ini Jumat, dua Oktober, dan ini adalah The Daily Diff.
0:18 Pada hari Kamis, salah satu pendiri GitHub menyebut perubahan yang direncanakan Git sebagai kesalahan yang mahal. Pi mengirimkan "agent harness" baru, dan SvelteKit mengirimkan migrasi lainnya. Scott Chacon membantu membangun GitHub dan menulis Pro Git, jadi keluhan ini datang dari dalam rumah. Rumah itu juga menjual alat Git. Pertama, rencana sebenarnya.
Apa sebenarnya yang diubah Git 3?
0:35 Git tiga akan mengatur repositori baru secara default ke SHA dua lima enam, setelah pustaka dan layanan hosting siap mendukungnya. Dokumen resmi tidak memberikan tanggal rilis dan tetap mendukung SHA satu. Repositori Anda yang sudah ada tidak secara ajaib mengubah format saat Anda mengupgrade eksekusi. Itu perlu diingat sebelum obrolan grup Anda menjadwalkan migrasi darurat. Dramanya adalah standar yang diusulkan, dan batas waktu saat ini adalah kalender kosong.
Mengapa mengganti SHA-1 jika Git mendeteksi tabrakan?
0:58 Mengapa berubah sama sekali? Git menamai objek dengan menghash isinya. File-file masuk ke pohon, dan komit merujuk ke pohon dan komit sebelumnya. Itu memberi Anda integritas di seluruh riwayat. Ubah skema hashing dan nama objek juga berubah, termasuk referensi yang disimpan di dalam objek lain. Chacon kembali ke Linus Torvalds, pencipta Git, dengan alasan bahwa
1:17 distribusi yang dipercaya itu penting. Itu adalah posisi historis, dan Linus memilih SHA satu pada tahun dua ribu lima. Kasus keamanan telah berubah sejak saat itu. Peneliti mendemonstrasikan tabrakan SHA satu pada tahun dua ribu tujuh belas, dan kemudian mendemonstrasikan serangan "chosen prefix" terhadap sertifikat identitas PGP. Git modern mendeteksi serangan tabrakan yang diketahui dengan SHA satu yang diperkuat. Pemeliharanya juga menginginkan perlindungan terhadap serangan di masa depan, yang merupakan hal yang wajar untuk diinginkan dari tanda tangan.
1:41 Chacon berpikir biaya ekosistem terlalu sedikit membeli keamanan. Ia mengusulkan untuk menandatangani checksum kuat terpisah dari isi pohon, sambil mempertahankan pengalamatan objek saat ini di bawahnya. Apa yang rusak? Saya membuat kedua format secara lokal dan menghash file kecil yang sama.
Apa yang ditunjukkan oleh pemeriksaan kompatibilitas lokal kami?
1:54 Satu nama objek memiliki empat puluh karakter heksadesimal, yang lain memiliki enam puluh empat. Lalu saya mencoba mengambil di antara keduanya. Git yang saya instal menolaknya dengan algoritma yang tidak cocok, tepatnya celah kompatibilitas yang dijelaskan dalam manual resmi saat ini. Ini menggunakan Git lama saya yang terinstal, jadi ini memberi tahu kita tentang batasan hari ini. Menyebutnya sebagai tes Git tiga yang belum dirilis akan menjadi pembukuan yang kreatif. Pekerjaan migrasi mencapai skrip yang mengasumsikan panjang hash, dan sistem yang terhubung ke nama objek.
2:19 Menghash ulang riwayat membutuhkan pemetaan antara identitas-identitas tersebut. Desain transisi Git mencakup penanganan pemetaan dan tanda tangan tersebut. Kesiapan implementasi penting, karena dokumen desain tidak mengupgrade perpustakaan yang tersembunyi di dalam alat pengembang favorit Anda. Itulah biaya manusia dalam argumen Chacon. Setiap pemelihara alat mendapatkan pekerjaan kompatibilitas lainnya, sementara pengguna menemukan bahwa kontrol versi mereka sekarang membutuhkan kontrol versi. Untuk saat ini, uji host dan peralatan Anda sebelum memilih format baru untuk
2:44 proyek. Tim yang sudah ada dapat mempertahankan format mereka saat ini sementara ekosistem itu mengejar ketertinggalan. Sementara itu, Pi mencapai satu titik nol.
Apa yang bertahan dari kerusakan di Pi Durable?
2:51 Ini adalah "coding agent harness" dari Earendil, dengan dukungan MCP asli melalui Codemode dan alat-alat yang dimuat saat dibutuhkan. Tim menyebut minimalisme sebagai intinya. Jika pengaturan agen Anda sudah menyerupai pemerintahan kecil, menjauhkan alat dari "prompt" sampai dibutuhkan terdengar seperti reformasi administrasi. Itu juga merilis Pi Durable, kerangka kerja eksperimental terpisah. Tugas menyimpan "checkpoint" sehingga proses yang dimulai ulang dapat melanjutkan pekerjaan yang belum selesai dari penyimpanan persisten. Detail krusialnya adalah pemutaran ulang alat.
3:16 Alat yang terganggu oleh kerusakan hanya berjalan ulang ketika menyatakan itu aman. Jika tidak, model diberitahu bahwa itu terganggu. Itu adalah batasan yang berguna ketika sebuah alat dapat menghabiskan uang. Saya ingin asisten mengingat daftar belanja saya tanpa merayakan kerusakan dengan membelinya dua kali.
Apa yang dimigrasikan SvelteKit 3 untuk Anda?
3:30 SvelteKit tiga juga mendarat pada hari Kamis, memindahkan konfigurasi ke Vite dan mengganti dollar lib dengan hash lib, menggunakan "standard package subpath imports". Perintah migrasi menulis ulang apa yang bisa dan meninggalkan daftar tugas untuk sisanya. Robot Anda bisa membantu, dan "diff" Anda masih pantas dibaca. Pengumuman bahkan merekrut teman robot Anda untuk sisa-sisa. Kita mencapai titik di mana upgrade kerangka kerja mengirimkan pekerjaan rumah dan guru pengganti yang disarankan. Dan fungsi jarak jauh masih membutuhkan Async Svelte eksperimental.
3:56 Nomor versi mayor terasa meyakinkan, tetapi fitur individual membawa label kematangan mereka sendiri. Periksa yang sebenarnya Anda gunakan.
Apa yang dibuktikan oleh pengecualian GitHub yang berfungsi?
4:03 Jadi siapa yang siap untuk format baru Git? Ini pengecualian itu. Repositori GitHub publik yang berisi pembicaraan Brian Carlson sudah mengembalikan nama objek SHA dua lima enam penuh. Saya memeriksa remote publik secara langsung. Slide pembicaraan menyebut dukungan sebagai pratinjau pribadi dan mengatakan pembuatan repositori masih akan datang. Ada kemajuan nyata di balik ruang tunggu. Itu membuktikan GitHub dapat melayani repositori pratinjau ini.
4:24 Itu memberi kita jaminan nol bahwa pembuatan proyek biasa atau semua integrasi Anda sudah siap. Pengecualian memiliki batasan izin. Jika Anda lebih suka membaca ini daripada mendengar saya mengatakannya, "diff" mendarat di kotak masuk Anda setiap pagi, gratis di the daily diff dot dev, tautan di bawah. Jadi putusan hari ini adalah "needs review."
Mengapa keputusan saya bergantung pada seluruh toolchain?
4:40 Saya akan mempertahankan opsi hash yang lebih kuat, dan menguji seluruh "toolchain" sebelum mengubah standar. Kompatibilitas adalah bagian dari pengiriman peningkatan keamanan. Dan itu "diff" untuk hari ini. Saya Niko dari Axrisi. Gabungkan dengan bertanggung jawab.
Sumber
- 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



