Perintis Rust Steve Klabnik Bertaruh pada Jujutsu VCS, Tinggalkan Oxide untuk Bina Platform Pembangun Generasi Baru

Pasukan Komuniti BigGo
Perintis Rust Steve Klabnik Bertaruh pada Jujutsu VCS, Tinggalkan Oxide untuk Bina Platform Pembangun Generasi Baru

Landskap kawalan versi, yang lama didominasi oleh Git, kini menyaksikan pencabar menarik dalam Jujutsu (jj), sebuah VCS generasi baru yang mendapat tempat melalui penggunaan akar umbi dan sokongan korporat yang signifikan. Teknologi ini baru-baru ini menjadi kepala berita apabila Steve Klabnik, penyokong Rust yang terkenal dan pengarang bersama buku The Rust Programming Language, mengumumkan beliau meninggalkan Oxide untuk menyertai ERSC, sebuah syarikat baru yang membina platform kerjasama pembangun berpusatkan jj.

Sorotan Garis Masa Penggunaan:

  • 2012: Rust 0.5 dikeluarkan (konteks untuk rangka kerja penilaian teknologi Klabnik)
  • Baru-baru ini: jj berpindah dari GitHub peribadi ke organisasi jj-vcs
  • 2024: Persidangan jj pertama diadakan
  • 2025: Klabnik mengumumkan perpindahan ke ERSC (berkuat kuasa bulan depan)
  • Semasa: Penggunaan yang semakin meningkat di Google dan melalui komuniti akar umbi

Mengapa Pembangun Menerima Jujutsu

Perbincangan komuniti mendedahkan bahawa daya tarikan jj terletak pada pendekatan uniknya terhadap kawalan versi yang entah bagaimana berjaya menjadi lebih mudah dan lebih berkuasa daripada Git. Pengguna melaporkan bahawa jj menghapuskan banyak masalah Git sambil memperkenalkan penambahbaikan aliran kerja yang dirasakan revolusioner. Fungsi rebas automatik menonjol sebagai kelebihan utama - apabila anda mengedit komit di tengah-tengah cabang, jj secara automatik mengalirkan perubahan tersebut melalui komit bergantung, menghapuskan rantai rebas manual yang membebani aliran kerja Git.

Ia sangat membebaskan dalam beberapa aspek. Anda boleh melakukan semua yang boleh dilakukan dengan git, tetapi beberapa perkara itu tidak memerlukan pelbagai langkah atau pengulangan tindakan yang sama n kali. jj rebase + konflik yang boleh dikomit + jj undo = kebebasan dan ketenangan fikiran.

Arahan jj undo telah menjadi amat disayangi dalam kalangan pengguna. Tidak seperti operasi Git yang kadangkala tidak boleh dipulihkan, jj mengekalkan log operasi yang membolehkan pengguna bereksperimen dengan selamat, mengetahui mereka sentiasa boleh kembali ke keadaan sebelumnya tanpa mengira arahan yang telah dilaksanakan. Jaring keselamatan ini menggalakkan refaktor dan penerokaan yang lebih berani.

Ciri-ciri Utama Jujutsu (jj) Berbanding Git:

  • Automatic rebase cascading: Mengedit commit secara automatik mengemas kini commit yang bergantung
  • Operation log: Sejarah lengkap semua operasi repositori
  • Universal undo: jj undo memulihkan sebarang operasi, bukan hanya commit
  • Pluggable backends: Berfungsi dengan repositori Git atau backend lain seperti Piper milik Google
  • Conflict management: Konflik yang boleh di-commit membenarkan penyerahan kerja separa
  • No staging area: Menghapuskan langkah git add daripada aliran kerja

Strategi Penerapan Berperingkat dan Sokongan Korporat

Kelebihan strategik terbesar Jujutsu mungkin ialah keserasiannya dengan repositori Git, membolehkan pasukan menggunakannya secara berperingkat tanpa mengganggu aliran kerja sedia ada. Ini berbeza ketara dengan alat VCS generasi baru lain yang memerlukan migrasi ekosistem sepenuhnya. Di Oxide, Klabnik dan rakan sekerja menunjukkan corak penerapan beransur-ansur ini, bermula dengan pembangun individu dan berkembang secara organik.

Penerapan dalaman yang signifikan oleh Google memberikan pengesahan penting. Walaupun jj berinteraksi dengan backend Piper proprietari Google dan bukannya Git dalam konteks ini, skala penggunaan dalam salah satu monorepo terbesar dunia menunjukkan kesediaan perusahaan alat ini. Sokongan korporat ini, digabungkan dengan semangat akar umbi, mencipta dinamik pertumbuhan yang kuat mengingatkan kejayaan bahasa pengaturcaraan awal.

Jalan Ke Hadapan: Cabaran dan Peluang

Walaupun semangat semakin berkembang, jj menghadapi beberapa halangan penerapan. Lengkung pembelajaran terbukti paling curam untuk pakar Git yang perlu melupakan aliran kerja yang sudah sebati. Seperti yang dinyatakan oleh seorang pemberi komen, Mereka yang benar-benar mengetahui dalaman Git dan telah meluangkan masa dan penjagaan dalam aliran kerja mereka yang mungkin agak bergelut dengan jj kerana jj adalah berbeza. Pendatang baru kepada kawalan versi selalunya mendapati jj lebih intuitif.

Pembangunan ekosistem perkakasan kekal kritikal. Ahli komuniti telah mengenal pasti keperluan untuk integrasi IDE yang lebih baik, terutamanya sambungan VSCode yang teguh, dan kesedaran LLM yang dipertingkatkan. Pada masa ini, pembantu pengekodan AI sering gagal mengenali arahan jj atau berhalusinasi dengan sintaks yang salah, mewujudkan geseran untuk pembangun yang biasa dengan aliran kerja berbantu AI.

Platform ERSC yang akan datang mewakili percubaan paling bercita-cita tinggi untuk membina ekosistem komprehensif di sekeliling jj. Walaupun sering digambarkan sebagai jjhub dalam perbincangan komuniti, platform ini bertujuan untuk menawarkan lebih daripada sekadar fungsi seperti GitHub untuk repositori jj. Set ciri tepat masih belum ditakrifkan, tetapi sentimen komuniti sangat memihak kepada data semakan kod yang disimpan secara tempatan, reka bentuk CLI-pertama, dan keupayaan luar talian-pertama.

Paralel Komuniti dengan Rust Awal

Dinamik komuniti jj menyerupai secara mencolok Rust dalam tahun-tahun pembentukannya. Kedua-dua projek menarik pengguna awal yang bersemangat yang menghargai bukan sahaja merit teknikal tetapi juga budaya komuniti yang mesra. Penglibatan Klabnik mencerminkan advokasi Rust awalnya, mencadangkan beliau melihat potensi yang sama dalam pendekatan jj untuk menyelesaikan masalah aliran kerja asas.

Perbandingan ini meluas kepada corak penerapan juga. Seperti Rust awal, jj menarik pembangun yang kecewa dengan batasan alat sedia ada tetapi memerlukan kesabaran semasa fasa pematangan ekosistem. Kehadiran penjaga teras yang berdedikasi, termasuk pencipta Martin dan kini Klabnik, memberikan kestabilan semasa tempoh pertumbuhan ini.

Semasa landskap kawalan versi berkembang, jj mewakili cabaran paling berwibawa terhadap dominasi Git sejak Mercurial. Gabungan unik inovasi teknikal, strategi penerapan pragmatik, dan sokongan korporat yang semakin berkembang meletakkannya sebagai teknologi yang perlu diperhatikan dengan teliti dalam tahun-tahun mendatang.

Rujukan: I see a future in jj