Jika kita hanya bekerja dengan satu cabang di Subversion, haruskah kita repot-repot? Tidak bisakah kita bekerja di bagasi untuk mempercepat?
Inilah cara kami berkembang dengan Subversion:
- Ada belalai
- Kami membuat cabang pengembangan baru
- Kami mengembangkan fitur baru di cabang itu
- Ketika fitur selesai, itu digabung dalam bagasi, cabang dihapus dan cabang pengembangan baru dibuat dari bagasi
Ketika kami ingin merilis untuk produksi, kami membuat tag dari bagasi. Perbaikan bug dilakukan pada cabang dari tag itu. Perbaikan bug ini kemudian digabungkan dalam bagasi.
Inilah sebabnya kami membuat cabang pengembangan baru setelah fitur selesai. Dengan cara ini, perbaikan bug segera dimasukkan dalam kode baru kami.
Di bawah ini adalah diagram yang harus menjelaskan:
Sekarang, ada perasaan bahwa ini bukan cara kerja yang paling efisien. Kami membangun secara lokal sebelum berkomitmen, yang membutuhkan waktu sekitar 5-10 menit. Anda dapat memahami bahwa ini dialami sebagai waktu tunggu yang cukup lama.
Gagasan cabang pengembangan adalah bahwa trunk selalu siap-lepas. Tapi ini tidak benar dalam situasi kita lagi. Kadang-kadang, sebuah fitur hampir siap, dan beberapa pengembang sudah mulai mengkodekan fitur berikutnya (jika tidak, mereka akan duduk menunggu satu atau dua pengembang untuk menyelesaikan dan menggabungkan).
Kemudian, ketika fitur 1 selesai, ia digabungkan ke dalam bagasi, tetapi dengan beberapa komitmen fitur 2 disertakan.
Jadi, haruskah kita repot-repot dengan cabang pengembangan, karena kita hanya punya satu cabang? Saya telah membaca tentang pengembangan berbasis trunk dan abstraksi cabang, tetapi sebagian besar artikel yang saya temukan fokus pada bagian abstraksi cabang. Saya mendapatkan kesan bahwa itu untuk perubahan besar yang akan berlangsung selama beberapa rilis. Ini bukan masalah yang kita alami.
Bagaimana menurut anda? Bisakah kita bekerja di bagasi? Skenario terburuk adalah (saya pikir) bahwa kita harus membuat tag dari bagasi dan memilih-ceri komit yang kita butuhkan, karena beberapa komit / fitur belum siap produksi.