Katakanlah saya sedang menulis dua versi berbeda dari perangkat lunak / program / aplikasi / skrip yang sama dan menyimpannya di bawah kontrol versi. Versi pertama adalah versi "Dasar" gratis, sedangkan yang kedua adalah versi "Premium" berbayar yang mengambil basis kode dari versi gratis dan memperluasnya dengan beberapa fitur nilai tambah tambahan. Setiap tambalan, perbaikan, atau fitur baru perlu menemukan jalannya ke kedua versi.
Saat ini saya sedang mempertimbangkan menggunakan master
dan develop
cabang untuk basis kode utama (versi gratis) di samping master-premium
dan develop-premium
cabang untuk versi berbayar. Ketika perubahan dibuat ke versi gratis dan digabung ke master
cabang (setelah pengujian menyeluruh develop
tentu saja), itu akan disalin ke develop-premium
cabang melalui cherry-pick
perintah untuk pengujian lebih lanjut dan kemudian digabung menjadi master-premium
.
Apakah ini alur kerja terbaik untuk menangani situasi ini? Adakah potensi masalah, peringatan, atau perangkap yang harus diperhatikan? Apakah ada strategi percabangan yang lebih baik daripada apa yang telah saya buat?
Umpan balik Anda sangat dihargai!
PS Ini untuk skrip PHP yang disimpan di Git, tetapi jawabannya harus berlaku untuk bahasa atau VCS apa pun.