Saya sudah mencoba kedua metode dengan aplikasi komersial besar.
Jawaban untuk metode mana yang lebih baik sangat tergantung pada situasi Anda yang sebenarnya, tetapi saya akan menulis apa yang telah ditunjukkan pengalaman saya sejauh ini.
Metode yang lebih baik secara keseluruhan (menurut pengalaman saya): Batang harus selalu stabil.
Berikut adalah beberapa panduan dan manfaat dari metode ini:
- Kode setiap tugas (atau serangkaian tugas terkait) di cabang sendiri, maka Anda akan memiliki fleksibilitas kapan Anda ingin menggabungkan tugas-tugas ini dan melakukan rilis.
- QA harus dilakukan pada setiap cabang sebelum digabung ke bagasi.
- Dengan melakukan QA pada masing-masing cabang, Anda akan tahu persis apa yang menyebabkan bug lebih mudah.
- Solusi ini berskala ke sejumlah pengembang.
- Metode ini berfungsi karena percabangan adalah operasi yang hampir instan di SVN.
- Tandai setiap rilis yang Anda lakukan.
- Anda dapat mengembangkan fitur yang tidak Anda rencanakan untuk sementara waktu dan memutuskan kapan harus menggabungkannya.
- Untuk semua pekerjaan yang Anda lakukan, Anda dapat memperoleh manfaat dari melakukan kode Anda. Jika Anda bekerja hanya dari bagasi, Anda mungkin akan menyimpan banyak kode Anda tanpa komitmen, dan karenanya tidak terlindungi dan tanpa riwayat otomatis.
Jika Anda mencoba melakukan yang sebaliknya dan melakukan semua pengembangan Anda di bagasi Anda akan memiliki masalah berikut:
- Masalah build konstan untuk build harian
- Kehilangan produktivitas ketika pengembang melakukan masalah untuk semua orang lain di proyek
- Siklus rilis yang lebih lama, karena Anda akhirnya harus mendapatkan versi yang stabil
- Rilis yang kurang stabil
Anda tidak akan memiliki fleksibilitas yang Anda butuhkan jika Anda mencoba untuk menjaga cabang stabil dan bagasi sebagai kotak pasir pengembangan. Alasannya adalah bahwa Anda tidak dapat memilih dan memilih dari bagasi apa yang ingin Anda masukkan ke dalam rilis stabil. Semua sudah tercampur menjadi satu di bagasi.
Satu kasus khususnya yang akan saya katakan untuk melakukan semua pengembangan di bagasi, adalah ketika Anda memulai proyek baru. Mungkin ada kasus lain juga tergantung pada situasi Anda.
Omong-omong sistem kontrol versi terdistribusi menyediakan lebih banyak fleksibilitas dan saya sangat merekomendasikan beralih ke hg atau git.