Kami memindahkan tim proyek kami dari menggunakan cabang Utama / Batang tunggal, ke beberapa cabang Pengembangan / Pekerjaan yang harus digabung secara teratur ke dalam Utama. Kami mendasarkan proses baru kami pada artikel ini dan Panduan Pencabangan TFS (kami menggunakan TFS dan Visual Studio 2010).
Saat ini ada antara 1 dan 5 orang yang mengerjakan proyek pada satu waktu. Main harus stabil setiap saat karena kami ingin opsi untuk rilis kapan pun kami butuhkan. Kami tidak memiliki sprint tetap - setidaknya belum - dan saat ini dirilis setiap 1-2 minggu.
Tepat pada titik waktu ini setiap orang memperbaiki bug di seluruh aplikasi. Dalam beberapa minggu kami akan memulai pengembangan pada komponen besar baru untuk aplikasi.
Satu hal penting yang kami temukan adalah kapan cabang pengembangan harus dibuat . Kami akan mengimplementasikan beberapa cerita pengguna secara paralel tergantung pada keahlian pengembang. Kami telah memikirkan untuk membuat cabang untuk setiap pengembang tetapi itu tidak masuk akal karena akan selalu ada kebutuhan untuk kolaborasi pada suatu karya. Kami tidak dapat bertahan dengan satu cabang pengembangan karena kami ingin bergabung ke Utama sementara pekerjaan lain selesai.
Adakah yang punya petunjuk tentang ini?
sumber
Jawaban:
Saya tidak suka cabang sembarang yaitu perbaikan bug Fred atau perbaikan Harry. Saya jauh lebih nyaman dengan satu fitur (independen) satu cabang yang memungkinkan banyak pengembang untuk beroperasi pada satu fitur; tetapi untuk fitur yang akan digabung hanya ketika sudah selesai.
Jadi, saat ini Anda hanya memerlukan cabang "perbaikan bug" tetapi begitu Anda memulai pengembangan Anda harus membuat cabang untuk setiap fitur yang signifikan. Dengan begitu ketika mereka selesai mereka dapat digabungkan & dirilis tanpa tergantung pada fungsionalitas buggier lainnya.
Tidak yakin seberapa bagus TFS dalam penggabungan tetapi saya yakin Anda akan tahu dalam beberapa bulan :)
sumber
Sepertinya Anda sudah tahu bahwa beberapa cabang pengembangan harus dibuat. Dua skenario yang mungkin muncul:
sumber
Cabang kerja tersirat dengan DVCS
Kami menggunakan Mercurial sehingga ada cabang kerja tersirat di kotak pengembang dev. Komit selalu dilakukan ke ruang kerja lokal. Ketika sebuah karya yang dapat dirilis selesai, ia didorong ke server repo utama tempat ia dibangun dan diuji secara otomatis.
Kami hampir tidak pernah membuat cabang eksplisit, tetapi sekali lagi sprint kami tidak pernah lebih dari 1 minggu dan kartu butuh waktu tidak lebih dari 1-2 hari untuk selesai.
Selain itu, Anda dapat mengurangi rasa sakit karena menggabungkan dalam pekerjaan dari bagian kode lain atau proyek lain sehingga orang tidak harus melakukan penggabungan yang sulit sepanjang waktu.
sumber
Saya telah menggunakan cabang tunggal per cerita dan satu cabang per rilis (semua pengembang memeriksa cerita mereka untuk dev dan jika ada yang melanggar cabang dev itu rusak untuk semua). Saya akan sangat merekomendasikan satu cabang per cerita jika Anda tidak suka konflik. Cabang dev akan selalu tetap stabil untuk semua pengembang dan tidak akan ada waktu tunggu bagi pengembang yang mengerjakan sepotong kode yang sudah rusak oleh pengembang lain. Ketika cerita Anda selesai semua kode Anda ada di cabang Anda. Anda akan menggabungkannya ke dev tetapi tidak check-in dan menguji, jika Anda mendapat konflik, Anda akan menyelesaikannya dan bertanya kepada orang yang Anda lawan untuk menghindari menghapus kode-kodenya. Kemudian bergabunglah dengan dev. Ini membantu semua dev bekerja dengan lancar. Itu juga tergantung pada ukuran perusahaan. Perusahaan kami memiliki 200 devs yang bekerja secara bersamaan pada satu basis kode, tetapi pisahkan cabang untuk cerita mereka. Setelah kode digabungkan ke cabang dev, cabang cerita segera dihapus. Saya harap ini membantu. Terima kasih
sumber
Jika ini didasarkan pada git, maka Anda cukup membuat cabang untuk setiap perbaikan bug, memperbaiki bug dalam waktu sesingkat mungkin, menggabungkan cabang perbaikan bug dengan cabang pengembangan, lalu mendorong perubahan ke cabang pengembangan. Meninjau permintaan tarik dan penggabungan harus menjadi prioritas tertinggi , karena semakin cepat Anda menyelesaikannya, semakin baik peluang merger tidak menyebabkan masalah. Setelah digabungkan, cabang-cabang ini dapat dihapus.
sumber