Pembangun perisian telah lama bergelut dengan mengekalkan tampung tersuai merentasi versi berbeza perisian pihak ketiga. Walaupun Git cemerlang dalam pembangunan yang bergerak ke hadapan, ia kurang berkesan apabila pasukan perlu mengekalkan tampung jangka panjang yang mesti dikemas kini, dijejaki, dan dikolaborasikan selama berbulan-bulan atau bertahun-tahun. Alat baharu yang dipanggil Lappverk bertujuan untuk merapatkan jurang ini dengan menggabungkan antara muka yang biasa digunakan Git dengan aliran kerja berasaskan tampung.
Masalah Teras dengan Pendekatan Tradisional
Cabaran terletak pada falsafah reka bentuk asas Git . Git mahu sejarah bergerak ke hadapan melalui komit baharu, tetapi tampung memerlukan layanan yang berbeza. Ia memerlukan keupayaan untuk diubah suai, diasaskan semula merentasi versi huluan, dan dikekalkan sebagai unit diskret dalam tempoh yang panjang. Perbincangan komuniti mendedahkan ini bukan sekadar masalah teori - ia menjejaskan pengedaran Linux , persekitaran korporat, dan sesiapa yang mengekalkan garpu lembut projek huluan.
Penyelesaian tradisional seperti mengekalkan cawangan Git berasingan melalui pengasasan semula mencipta masalah kolaborasi. Apabila beberapa ahli pasukan bekerja pada set tampung yang sama, pengasasan semula berterusan merosakkan model kolaborasi Git sepenuhnya. Pendekatan alternatif menggunakan komit gabungan dengan cepat mengusutkan tampung berbeza bersama-sama, menjadikan perubahan individu mustahil untuk dijejaki atau diubah suai.
Bagaimana Lappverk Cuba Menyelesaikan Isu Tersebut
Lappverk mengambil pendekatan hibrid dengan mengimport set tampung ke dalam Git untuk penyuntingan, kemudian mengeksportnya kembali sebagai fail tampung tradisional. Aliran kerja ini memanfaatkan arahan format-patch dan am sedia ada Git sambil menambah konvensyen untuk memperlancarkan proses. Alat ini menormalkan metadata komit untuk memastikan eksport yang konsisten dan menjejaki sempadan huluan secara automatik.
Sistem ini membolehkan pasukan bekerja dengan arahan dan perkakas Git yang biasa sambil mengekalkan tampung sebagai fail teks yang boleh diversikan. Setiap tampung kekal sebagai unit diskret yang boleh diubah suai, disusun semula, atau dikeluarkan tanpa menjejaskan yang lain dalam siri.
Arahan Aliran Kerja Asas Lappverk
| Arahan | Tujuan |
|---|---|
lappverk init project |
Cipta projek baharu dan siri tampung |
lappverk checkout |
Semak keadaan siri tampung semasa |
lappverk export |
Kemas kini siri tampung daripada komit semasa |
git format-patch |
Arahan terbina dalam Git untuk penciptaan tampung |
git am |
Arahan terbina dalam Git untuk import tampung |
Sambutan Komuniti dan Pendekatan Alternatif
Maklum balas pembangun menunjukkan reaksi bercampur-campur terhadap keperluan alat ini. Sesetengah berhujah bahawa aliran kerja Git sedia ada dengan pengurusan cawangan yang teliti sudah menyelesaikan masalah ini dengan mencukupi. Yang lain menunjuk kepada alat yang telah mantap seperti Quilt , yang telah digunakan oleh pengedaran selama bertahun-tahun untuk mengurus koleksi tampung, walaupun Quilt datang dengan keluk pembelajaran dan batasannya sendiri.
Realitinya ialah terdapat sangat sedikit nasihat sedia ada untuk mengekalkan garpu lembut yang tidak berniat untuk mengalirkan tampung ke huluan.
Beberapa pembangun berkongsi penyelesaian mereka sendiri, daripada sistem penyegerakan automatik yang digunakan oleh projek seperti Servo dan Firefox , hingga aliran kerja pengasasan semula mudah dengan nama cawangan bertarikh. Kepelbagaian pendekatan menyerlahkan bagaimana setiap pasukan telah membangunkan penyelesaian tersuai untuk masalah biasa ini.
Alat Pengurusan Patch Alternatif
- Quilt: Alat pengurusan patch tradisional yang digunakan oleh pengedaran Linux
- git-spice: Alternatif kepada stgit untuk pengurusan tumpukan patch
- Jujutsu: Sistem kawalan versi dengan pengubahsuaian sejarah yang lebih mudah
- Wine-staging: Contoh pengurusan patch berskala besar dalam amalan
- Standard Git rebasing: Pendekatan manual menggunakan pengurusan cawangan dan tolakan paksa
Aplikasi Dunia Sebenar dan Kes Penggunaan
Alat ini kelihatan paling berharga untuk organisasi yang mengekalkan pengubahsuaian dalaman kepada perisian sumber terbuka. Contohnya termasuk peningkatan kebergantungan, pembetulan pepijat yang dibawa balik, dan ciri tersuai yang tidak sesuai untuk sumbangan huluan. Wine-staging dan pelbagai penyelenggara pakej pengedaran Linux menghadapi cabaran serupa apabila mengurus tampung merentasi versi perisian.
Persekitaran korporat sering memerlukan tampung yang terlalu khusus untuk persediaan mereka atau mengandungi pengubahsuaian proprietari yang tidak boleh dikongsi secara terbuka. Untuk kes penggunaan ini, pendekatan Lappverk untuk melayan tampung sebagai artifak kelas pertama yang boleh diversikan masuk akal.
Walaupun Lappverk mungkin tidak merevolusikan pembangunan perisian, ia menangani titik kesakitan tulen yang dihadapi oleh ramai pembangun. Sama ada ia mendapat penggunaan berkemungkinan bergantung pada sejauh mana ia berintegrasi dengan aliran kerja sedia ada dan sama ada pasukan mendapati faedahnya mengatasi kerumitan mempelajari alat lain. Untuk organisasi yang sudah bergelut dengan pengurusan tampung, ia menawarkan alternatif berstruktur kepada penyelesaian ad-hoc.
Rujukan: Modifying Other People's Software
